USE [master]
GO
/****** Object:  Database [logins_test]    Script Date: 2026-03-30 오후 1:12:18 ******/
CREATE DATABASE [logins_test]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'gw', FILENAME = N'D:\LOGINS\Database\Groupware\logins_test.mdf' , SIZE = 94720KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'gw_log', FILENAME = N'D:\LOGINS\Database\Groupware\logins_test_log.ldf' , SIZE = 3136KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [logins_test] SET COMPATIBILITY_LEVEL = 110
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [logins_test].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [logins_test] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [logins_test] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [logins_test] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [logins_test] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [logins_test] SET ARITHABORT OFF 
GO
ALTER DATABASE [logins_test] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [logins_test] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [logins_test] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [logins_test] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [logins_test] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [logins_test] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [logins_test] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [logins_test] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [logins_test] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [logins_test] SET  DISABLE_BROKER 
GO
ALTER DATABASE [logins_test] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [logins_test] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [logins_test] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [logins_test] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [logins_test] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [logins_test] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [logins_test] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [logins_test] SET RECOVERY FULL 
GO
ALTER DATABASE [logins_test] SET  MULTI_USER 
GO
ALTER DATABASE [logins_test] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [logins_test] SET DB_CHAINING OFF 
GO
ALTER DATABASE [logins_test] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) 
GO
ALTER DATABASE [logins_test] SET TARGET_RECOVERY_TIME = 0 SECONDS 
GO
ALTER DATABASE [logins_test] SET DELAYED_DURABILITY = DISABLED 
GO
EXEC sys.sp_db_vardecimal_storage_format N'logins_test', N'ON'
GO
USE [logins_test]
GO
/****** Object:  User [logins]    Script Date: 2026-03-30 오후 1:12:19 ******/
CREATE USER [logins] FOR LOGIN [logins] WITH DEFAULT_SCHEMA=[dbo]
GO
ALTER ROLE [db_owner] ADD MEMBER [logins]
GO
/****** Object:  UserDefinedTableType [dbo].[ApprovalParamTableType]    Script Date: 2026-03-30 오후 1:12:19 ******/
CREATE TYPE [dbo].[ApprovalParamTableType] AS TABLE(
	[CORP_NO] [varchar](15) NULL,
	[APRVL_DOC_ID] [int] NULL,
	[USR_ID] [varchar](10) NULL
)
GO
/****** Object:  UserDefinedTableType [dbo].[TableType]    Script Date: 2026-03-30 오후 1:12:19 ******/
CREATE TYPE [dbo].[TableType] AS TABLE(
	[CORP_NO] [varchar](15) NULL,
	[APRVL_DOC_ID] [int] NULL,
	[USR_ID] [varchar](10) NULL
)
GO
/****** Object:  Table [dbo].[bfile]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[bfile](
	[ID] [int] NOT NULL,
	[b_id] [int] NULL,
	[filename] [nvarchar](50) NULL,
	[filesize] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[bment]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[bment](
	[ID] [int] NOT NULL,
	[b_id] [int] NULL,
	[m_name] [nvarchar](50) NULL,
	[m_ment] [ntext] NULL,
	[m_date] [nvarchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[board]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[board](
	[ID] [int] NOT NULL,
	[title] [nvarchar](250) NULL,
	[content] [ntext] NULL,
	[date] [nvarchar](50) NULL,
	[name] [nvarchar](50) NULL,
	[count] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[bphoto]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[bphoto](
	[ID] [int] NOT NULL,
	[b_id] [int] NULL,
	[filename] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[confile]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[confile](
	[ID] [int] NOT NULL,
	[n_id] [int] NULL,
	[filename] [nvarchar](50) NULL,
	[filesize] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[conotice]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[conotice](
	[ID] [int] NOT NULL,
	[title] [nvarchar](250) NULL,
	[content] [ntext] NULL,
	[date] [nvarchar](50) NULL,
	[name] [nvarchar](50) NULL,
	[count] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[dummy]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[dummy](
	[idx] [int] IDENTITY(1,1) NOT NULL,
	[NM] [varchar](50) NULL,
	[VAL] [varchar](50) NULL,
	[CD] [varchar](50) NULL,
 CONSTRAINT [PK_dummy] PRIMARY KEY CLUSTERED 
(
	[idx] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[errorMng]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[errorMng](
	[sq] [bigint] IDENTITY(1,1) NOT NULL,
	[ie_gbn] [varchar](1) NULL,
	[s_code] [varchar](5) NULL,
	[s_year] [varchar](2) NULL,
	[s_jechl] [varchar](7) NULL,
	[com_nm] [varchar](28) NULL,
	[j_singo_dt] [varchar](8) NULL,
	[s_singo_dt] [varchar](8) NULL,
	[j_cd_cd] [int] NULL,
	[j_title_cd] [int] NULL,
	[j_contents] [varchar](200) NULL,
	[j_gwi_cd] [int] NULL,
	[j_gwi_user_id1] [varchar](50) NULL,
	[j_gwi_user_id2] [varchar](50) NULL,
	[reg_user_id] [varchar](50) NULL,
	[f_st_cd] [int] NULL,
	[f_jj_cd] [int] NULL,
	[f_jj_contents] [text] NULL,
	[f_jj_nm] [varchar](10) NULL,
	[f_jj_reg_dt] [varchar](8) NULL,
	[f_jj_reg_gbn] [varchar](1) NULL,
	[u_title] [varchar](50) NULL,
	[u_res] [varchar](400) NULL,
	[u_reg_dt] [varchar](8) NULL,
	[ATTACH_NO] [varchar](50) NULL,
	[work_dt] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[exco]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[exco](
	[ID] [int] NOT NULL,
	[singono] [nvarchar](20) NULL,
	[importer] [nvarchar](50) NULL,
	[singodate] [nvarchar](10) NULL,
	[sclass] [nvarchar](50) NULL,
	[content] [ntext] NULL,
	[name] [nvarchar](50) NULL,
	[date] [nvarchar](50) NULL,
	[stats] [nvarchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[f_jj_gbn]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[f_jj_gbn](
	[f_jj_cd] [bigint] IDENTITY(1,1) NOT NULL,
	[f_jj_des1] [varchar](2) NULL,
	[f_jj_des2] [varchar](50) NULL,
	[f_jj_des3] [varchar](100) NULL,
 CONSTRAINT [PK_f_jj_gbn] PRIMARY KEY CLUSTERED 
(
	[f_jj_cd] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[f_jj_st]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[f_jj_st](
	[f_st_cd] [int] IDENTITY(1,1) NOT NULL,
	[f_st_des] [varchar](10) NULL,
 CONSTRAINT [PK_f_jj_st] PRIMARY KEY CLUSTERED 
(
	[f_st_cd] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[gwi_gbn]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[gwi_gbn](
	[j_gwi_cd] [int] IDENTITY(1,1) NOT NULL,
	[j_gwi_des] [varchar](10) NULL,
 CONSTRAINT [PK_f_gwi_gbn] PRIMARY KEY CLUSTERED 
(
	[j_gwi_cd] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[holiday]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[holiday](
	[ID] [int] NOT NULL,
	[날짜] [nvarchar](50) NULL,
	[설명] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[inco]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[inco](
	[ID] [int] NOT NULL,
	[singono] [nvarchar](20) NULL,
	[importer] [nvarchar](50) NULL,
	[singodate] [nvarchar](10) NULL,
	[sclass] [nvarchar](50) NULL,
	[scause] [nvarchar](50) NULL,
	[content] [ntext] NULL,
	[name] [nvarchar](50) NULL,
	[date] [nvarchar](50) NULL,
	[stats] [nvarchar](50) NULL,
	[statsdate] [nvarchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[incolog]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[incolog](
	[ID] [int] NOT NULL,
	[i_id] [int] NULL,
	[ltitle] [nvarchar](50) NULL,
	[ltime] [nvarchar](50) NULL,
	[lment] [nvarchar](200) NULL,
	[lwriter] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[incoment]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[incoment](
	[ID] [int] NOT NULL,
	[i_id] [int] NULL,
	[m_name] [nvarchar](50) NULL,
	[m_ment] [ntext] NULL,
	[m_date] [nvarchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[jj_cd]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[jj_cd](
	[j_cd_cd] [int] IDENTITY(1,1) NOT NULL,
	[j_cd_des] [varchar](10) NULL,
 CONSTRAINT [PK_f_jj_cd] PRIMARY KEY CLUSTERED 
(
	[j_cd_cd] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[jj_contents]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[jj_contents](
	[j_title_cd] [int] IDENTITY(1,1) NOT NULL,
	[j_title_des] [varchar](20) NULL,
 CONSTRAINT [PK_f_jj_contents] PRIMARY KEY CLUSTERED 
(
	[j_title_cd] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[kfile]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[kfile](
	[ID] [int] NOT NULL,
	[b_id] [int] NULL,
	[filename] [nvarchar](50) NULL,
	[filesize] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[kment]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[kment](
	[ID] [int] NOT NULL,
	[b_id] [int] NULL,
	[m_name] [nvarchar](50) NULL,
	[m_ment] [ntext] NULL,
	[m_date] [nvarchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[know]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[know](
	[ID] [int] NOT NULL,
	[title] [nvarchar](250) NULL,
	[content] [ntext] NULL,
	[date] [nvarchar](50) NULL,
	[name] [nvarchar](50) NULL,
	[count] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[kphoto]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[kphoto](
	[ID] [int] NOT NULL,
	[b_id] [int] NULL,
	[filename] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[latereport]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[latereport](
	[ID] [int] NOT NULL,
	[name] [nvarchar](255) NULL,
	[reason] [ntext] NULL,
	[timein] [nvarchar](255) NULL,
	[latetime] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[lawfile]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[lawfile](
	[ID] [int] NOT NULL,
	[법] [nvarchar](50) NULL,
	[이름] [nvarchar](50) NULL,
	[파일명] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[nfile]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[nfile](
	[ID] [int] NOT NULL,
	[n_id] [int] NULL,
	[filename] [nvarchar](50) NULL,
	[filesize] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[nment]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[nment](
	[ID] [int] NOT NULL,
	[n_id] [int] NULL,
	[m_name] [nvarchar](50) NULL,
	[m_ment] [ntext] NULL,
	[m_date] [nvarchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[notice]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[notice](
	[ID] [int] NOT NULL,
	[title] [nvarchar](250) NULL,
	[content] [ntext] NULL,
	[date] [nvarchar](50) NULL,
	[name] [nvarchar](50) NULL,
	[count] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[notwork]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[notwork](
	[ID] [int] NOT NULL,
	[name] [nvarchar](50) NULL,
	[date] [nvarchar](10) NULL,
	[reason] [ntext] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[overtime]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[overtime](
	[ID] [int] NOT NULL,
	[이름] [nvarchar](50) NULL,
	[신청일] [nchar](10) NULL,
	[구분] [nvarchar](10) NULL,
	[전후] [nvarchar](10) NULL,
	[내용] [ntext] NULL,
	[팀장] [nvarchar](10) NULL,
	[팀장승인] [nvarchar](50) NULL,
	[본부장] [nvarchar](10) NULL,
	[본부장승인] [nvarchar](50) NULL,
	[작성일] [nvarchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[shortwork]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[shortwork](
	[ID] [int] NOT NULL,
	[name] [nvarchar](255) NULL,
	[reason] [ntext] NULL,
	[timeout] [nvarchar](255) NULL,
	[shorttime] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[start]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[start](
	[ID] [int] NOT NULL,
	[구분] [nvarchar](50) NULL,
	[참조] [nvarchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[startsat]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[startsat](
	[ID] [int] NOT NULL,
	[구분] [nvarchar](50) NULL,
	[참조] [nvarchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[suri_count]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[suri_count](
	[ss_year] [varchar](4) NOT NULL,
	[ss_month] [varchar](2) NOT NULL,
	[ss_i_cnt] [int] NULL,
	[ss_e_cnt] [int] NULL,
 CONSTRAINT [PK_f_suri_count] PRIMARY KEY CLUSTERED 
(
	[ss_year] ASC,
	[ss_month] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0010]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0010](
	[CORP_NO] [varchar](15) NOT NULL,
	[CORP_NM] [varchar](100) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_CO0010_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0030]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0030](
	[CORP_NO] [varchar](15) NOT NULL,
	[COMM_CL_CD] [varchar](5) NOT NULL,
	[COMM_CL_CD_NM] [varchar](100) NULL,
	[COMM_CL_CD_USE_YN] [varchar](1) NOT NULL,
	[COMM_CL_CD_DSCRPT] [varchar](500) NULL,
	[DSPLY_ORDR] [int] NULL,
	[PROP_YN] [varchar](1) NOT NULL,
	[PROP_CL1_CD] [varchar](5) NULL,
	[PROP_CL2_CD] [varchar](5) NULL,
	[PROP_CL3_CD] [varchar](5) NULL,
	[PROP_CL4_CD] [varchar](5) NULL,
	[PROP_CL5_CD] [varchar](5) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_CO0030_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[COMM_CL_CD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0040]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0040](
	[CORP_NO] [varchar](15) NOT NULL,
	[COMM_CL_CD] [varchar](5) NOT NULL,
	[COMM_CD] [varchar](4) NOT NULL,
	[COMM_CD_NM] [varchar](100) NULL,
	[COMM_CD_USE_YN] [varchar](1) NOT NULL,
	[COMM_CD_DSCRPT] [varchar](500) NULL,
	[COMM_CD_DSPLY_ORDR] [int] NULL,
	[COMM_CD_TYPE_VAL] [varchar](10) NULL,
	[PROP2_CD] [varchar](4) NULL,
	[PROP1_CD] [varchar](4) NULL,
	[PROP3_CD] [varchar](4) NULL,
	[PROP4_CD] [varchar](4) NULL,
	[PROP5_CD] [varchar](4) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_CO0040_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[COMM_CL_CD] ASC,
	[COMM_CD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0050]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0050](
	[ATCHFILE_NO] [varchar](50) NOT NULL,
	[ATCH_NO] [varchar](50) NULL,
	[ATCH_FILE_PATH_NM] [varchar](200) NULL,
	[ATCH_FILE_NM] [varchar](200) NULL,
	[ATCH_TYPE_NM] [varchar](100) NULL,
	[ORGNL_FILE_NM] [varchar](200) NULL,
	[ATCH_FILE_MG] [int] NULL,
	[TBL_COL_NM] [varchar](100) NULL,
	[DEL_DT] [datetime] NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_CO0050_PK] PRIMARY KEY CLUSTERED 
(
	[ATCHFILE_NO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0060]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0060](
	[SEQUENCE_NM] [varchar](100) NOT NULL,
	[SEQUENCE_VAL] [int] NULL,
 CONSTRAINT [SX_CO0060_PK] PRIMARY KEY CLUSTERED 
(
	[SEQUENCE_NM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0070]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0070](
	[CORP_NO] [varchar](15) NOT NULL,
	[WORK_CD] [varchar](10) NOT NULL,
	[WORK_CD_TITLE_NM] [varchar](200) NULL,
	[GOTOWORK_TM_NM] [varchar](10) NULL,
	[GETOFFWORK_TM_NM] [varchar](10) NULL,
	[PAY_DIV_NM] [varchar](100) NULL,
	[REGULAR_WORK_TM] [decimal](5, 2) NULL,
	[REST_TM] [decimal](5, 2) NULL,
	[INCLU_WORK_NM] [varchar](100) NULL,
	[INCLU_WORK_START_TM] [varchar](100) NULL,
	[INCLU_WORK_END_TM] [varchar](100) NULL,
	[INCLU_WORK_TM] [decimal](5, 2) NULL,
	[CALC_LOCA_NM] [varchar](10) NULL,
	[OT_START_TM] [varchar](100) NULL,
	[NGT_ALLW_NM] [varchar](100) NULL,
	[NGT_START_TM] [varchar](10) NULL,
	[NGT_END_TM] [varchar](10) NULL,
	[WORK_ALLW_NM] [varchar](200) NULL,
	[WORK_CD_USE_YN] [varchar](1) NOT NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[WORK_CN] [varchar](4000) NULL,
	[OT_BSCRT] [decimal](5, 2) NULL,
	[NGT_BSCRT] [decimal](5, 2) NULL,
	[APLY_WORK_DAY] [decimal](5, 2) NULL,
	[YYCT_DEDU_DAY] [decimal](5, 2) NULL,
	[MEAL_START_TM] [varchar](10) NULL,
	[MEAL_END_TM] [varchar](10) NULL,
	[HOLIDAY_YN] [varchar](10) NULL,
 CONSTRAINT [SX_CO0070_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[WORK_CD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0080]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0080](
	[CORP_NO] [varchar](15) NOT NULL,
	[MENU_NO] [int] NOT NULL,
	[UPPER_MENU_NO] [int] NULL,
	[MENU_NM] [varchar](200) NULL,
	[URL] [varchar](300) NULL,
	[RM] [varchar](1000) NULL,
	[MENU_PROP] [varchar](1000) NULL,
	[MENU_ORDR] [int] NULL,
	[MENU_USE_YN] [varchar](1) NOT NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[CONTROLLER] [varchar](100) NULL,
	[MENU_LVL] [int] NULL,
 CONSTRAINT [SX_CO0080_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[MENU_NO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0090]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0090](
	[CORP_NO] [varchar](15) NOT NULL,
	[MENU_NO] [int] NOT NULL,
	[MENU_AUTH_CD] [varchar](4) NOT NULL,
	[AUTH_MENU_PROP] [varchar](1000) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[FUNC_AUTH_CN] [varchar](100) NULL,
 CONSTRAINT [SX_CO0090_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[MENU_NO] ASC,
	[MENU_AUTH_CD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0100]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0100](
	[SEQ] [numeric](38, 0) IDENTITY(1,1) NOT NULL,
	[WORK_DT] [varchar](8) NOT NULL,
	[WORK_ID] [nvarchar](200) NULL,
	[WORK_NM] [nvarchar](100) NULL,
	[WORK_TYPE] [int] NULL,
 CONSTRAINT [PK_SX_CO0100] PRIMARY KEY CLUSTERED 
(
	[SEQ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0110]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0110](
	[SEQ] [bigint] IDENTITY(1,1) NOT NULL,
	[WORK_NM] [nvarchar](100) NULL,
 CONSTRAINT [PK_SX_CO0110] PRIMARY KEY CLUSTERED 
(
	[SEQ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0120]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0120](
	[SEQ] [int] IDENTITY(1,1) NOT NULL,
	[B_NM] [nvarchar](30) NULL,
	[B_TERM] [int] NULL,
	[B_CUT] [datetime] NULL,
	[B_NEXT] [datetime] NULL,
 CONSTRAINT [PK_SX_CO0120] PRIMARY KEY CLUSTERED 
(
	[SEQ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_CO0130]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_CO0130](
	[SEQ] [int] IDENTITY(1,1) NOT NULL,
	[B_NM] [nvarchar](30) NULL,
	[B_DAY] [int] NULL,
	[B_DAY_VIEW] [nvarchar](10) NULL,
	[B_TIME] [nvarchar](5) NULL,
 CONSTRAINT [PK_SX_CO0130] PRIMARY KEY CLUSTERED 
(
	[SEQ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0010]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0010](
	[CORP_NO] [varchar](15) NOT NULL,
	[USR_ID] [varchar](10) NOT NULL,
	[USR_SORT_ORDR] [int] NULL,
	[USR_NM] [varchar](100) NOT NULL,
	[PW] [varchar](100) NOT NULL,
	[DUTY_CD] [varchar](4) NULL,
	[BRTHDY_DATE] [varchar](8) NULL,
	[USR_TELNO] [varchar](15) NULL,
	[MTEL_NO] [varchar](15) NULL,
	[EMAIL] [varchar](100) NULL,
	[BASE_ADRS] [varchar](100) NULL,
	[GUSO_ADRS] [varchar](100) NULL,
	[GUSO_TELNO] [varchar](15) NULL,
	[JOINCP_DATE] [varchar](8) NULL,
	[SALARY] [int] NULL,
	[BZ_CD] [varchar](4) NULL,
	[WKDAY_WORK_CD] [varchar](4) NULL,
	[WKEND_WORK_CD] [varchar](4) NULL,
	[OT_AMT] [int] NULL,
	[OT_CD] [varchar](4) NULL,
	[FD_EXPENSES_CD] [varchar](4) NULL,
	[SPOUSE_YN] [varchar](1) NOT NULL,
	[SPT_FAMILY_CNT] [int] NULL,
	[TEAM_CD] [varchar](4) NULL,
	[MDCHIT_NM] [varchar](100) NULL,
	[FINAL_SCHSP_NM] [varchar](100) NULL,
	[DISML_DATE] [varchar](8) NULL,
	[RETIREMENT_DATE] [varchar](8) NULL,
	[RETIREMENT_RSN_CN] [varchar](500) NULL,
	[MNYVALUA_ADJ_CN] [varchar](500) NULL,
	[CRR_CN] [varchar](max) NULL,
	[QUAL_CN] [varchar](max) NULL,
	[CNTRCT_CNDT_CN] [varchar](max) NULL,
	[SPCLT_ARTC_CN] [varchar](max) NULL,
	[PHOTO_ATCHFILE_NO] [varchar](50) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[SPMT_EMAIL] [varchar](100) NULL,
	[SPMT_MTEL_NO] [varchar](15) NULL,
	[RRNO] [varchar](7) NULL,
	[LOGIN_ID] [varchar](100) NULL,
	[APPR_YN] [varchar](1) NULL,
 CONSTRAINT [SX_GW0010_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[USR_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
 CONSTRAINT [LOGIN_ID_UNIQE] UNIQUE NONCLUSTERED 
(
	[LOGIN_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0020]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0020](
	[CORP_NO] [varchar](15) NOT NULL,
	[UNTY_BBS_CD] [varchar](4) NOT NULL,
	[UNTY_BBS_SNO] [int] NOT NULL,
	[BBS_TITLE_NM] [varchar](200) NULL,
	[BBS_CN] [text] NULL,
	[INQR_CNT] [int] NULL,
	[CTUSR_ID] [varchar](10) NULL,
	[ETC_ATCH_NO] [varchar](50) NULL,
	[PHOTO_ATCH_NO] [varchar](50) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[CMMT_CNT] [int] NULL,
 CONSTRAINT [SX_GW0020_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[UNTY_BBS_CD] ASC,
	[UNTY_BBS_SNO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0030]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0030](
	[CORP_NO] [varchar](15) NOT NULL,
	[UNTY_BBS_CD] [varchar](4) NOT NULL,
	[UNTY_BBS_SNO] [int] NOT NULL,
	[CMMT_SNO] [int] NOT NULL,
	[CMMT_CN] [varchar](max) NULL,
	[CMMT_CTUSR_ID] [varchar](10) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_GW0030_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[UNTY_BBS_CD] ASC,
	[UNTY_BBS_SNO] ASC,
	[CMMT_SNO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0050]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0050](
	[CORP_NO] [varchar](15) NOT NULL,
	[USR_ID] [varchar](10) NOT NULL,
	[WORK_PLAN_YYMMDD] [varchar](8) NOT NULL,
	[PLAN_WORK_CD] [varchar](10) NULL,
	[WORK_CD] [varchar](10) NULL,
	[WORK_START_DT] [datetime] NULL,
	[WORK_END_DT] [datetime] NULL,
	[TOT_WORK_MIN] [int] NULL,
	[LATE_MIN] [int] NULL,
	[ABTI_YN] [varchar](1) NOT NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[INCLU_WORK_OT_MIN] [int] NULL,
	[OT_WORK_MIN] [int] NULL,
	[NGT_OT_MIN] [int] NULL,
	[SKIPOFF_REMN_BZ_MIN] [int] NULL,
	[OT_RCTN_YN] [varchar](1) NULL,
	[SORT_ODR] [int] NULL,
	[OUTING_MIN] [int] NULL,
	[OUTING_CNT] [int] NULL,
	[REAL_START_DT] [datetime] NULL,
	[REAL_END_DT] [datetime] NULL,
	[EL_RCTN_YN] [varchar](1) NULL,
	[HOLIDAY_LATE_MIN] [int] NULL,
 CONSTRAINT [SX_GW0050_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[USR_ID] ASC,
	[WORK_PLAN_YYMMDD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0060]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0060](
	[CORP_NO] [varchar](15) NOT NULL,
	[USR_ID] [varchar](10) NOT NULL,
	[YYVCT_YY] [varchar](4) NOT NULL,
	[YYVCT_CNT] [float] NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[SORT_ODR] [int] NULL,
	[REFCN] [varchar](2000) NULL,
 CONSTRAINT [SX_GW0060_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[USR_ID] ASC,
	[YYVCT_YY] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0080]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0080](
	[CORP_NO] [varchar](15) NOT NULL,
	[APRVL_DOC_ID] [int] NOT NULL,
	[LATE_SKIPOFF_ABTI_OT_CD] [varchar](4) NULL,
	[LATE_SKIPOFF_ABTI_OT_DATE] [varchar](8) NULL,
	[LATE_SKIPOFF_OT_DT] [datetime] NULL,
	[LATE_SKIPOFF_OT_DT2] [datetime] NULL,
	[LATE_SKIPOFF_OT_MIN] [int] NULL,
	[NML_WORK_RCNTN_YN] [varchar](1) NOT NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[REQUEST_DT] [datetime] NULL,
	[REQUEST_DT2] [datetime] NULL,
 CONSTRAINT [SX_GW0080_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[APRVL_DOC_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0090]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0090](
	[CORP_NO] [varchar](15) NOT NULL,
	[APRVL_DOC_ID] [int] NOT NULL,
	[APRVL_STUS_CD] [varchar](4) NULL,
	[APRVL_KIND_CD] [varchar](4) NULL,
	[APLNT_ID] [varchar](10) NULL,
	[OFFER_DT] [datetime] NULL,
	[CMPL_DT] [datetime] NULL,
	[APLNT_CN] [varchar](1000) NULL,
	[BZ_CN] [varchar](1000) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[ATCH_NO] [varchar](50) NULL,
	[OFFER_CN] [varchar](4000) NULL,
	[APRVL_CMPL_SNO] [int] NULL,
	[FINAL_APRVL_SNO] [int] NULL,
	[BZ_DEPUTY_ID] [varchar](10) NULL,
	[DOC_FLAG] [varchar](2) NULL,
 CONSTRAINT [SX_GW0090_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[APRVL_DOC_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0100]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0100](
	[CORP_NO] [varchar](15) NOT NULL,
	[APRVL_DOC_ID] [int] NOT NULL,
	[APRVL_SNO] [int] NOT NULL,
	[APPR_ID] [varchar](10) NULL,
	[APPR_STUS_CD] [varchar](4) NULL,
	[APRVL_DT] [datetime] NULL,
	[APPR_CN] [varchar](1000) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
	[DOC_FLAG] [varchar](2) NULL,
 CONSTRAINT [SX_GW0100_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[APRVL_DOC_ID] ASC,
	[APRVL_SNO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0110]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0110](
	[CORP_NO] [varchar](15) NOT NULL,
	[APRVL_DOC_ID] [int] NOT NULL,
	[UPD_DATE] [varchar](8) NOT NULL,
	[UPD_BF_WORK_CD] [varchar](4) NULL,
	[UPD_WORK_CD] [varchar](4) NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_GW0110_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[APRVL_DOC_ID] ASC,
	[UPD_DATE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0120]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0120](
	[CORP_NO] [varchar](15) NOT NULL,
	[APRVL_DOC_ID] [int] NOT NULL,
	[YYVCT_DATE] [varchar](8) NULL,
	[BZ_DEPUTY_ID] [varchar](10) NOT NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_GW0120_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[APRVL_DOC_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0130]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0130](
	[CORP_NO] [varchar](15) NOT NULL,
	[USR_ID] [varchar](10) NOT NULL,
	[MENU_AUTH_CD] [varchar](4) NOT NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_GW0130_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[USR_ID] ASC,
	[MENU_AUTH_CD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SX_GW0140]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SX_GW0140](
	[CORP_NO] [varchar](15) NOT NULL,
	[USR_ID] [varchar](10) NOT NULL,
	[LV_1_APPR_YN] [varchar](1) NOT NULL,
	[LV_2_APPR_YN] [varchar](1) NOT NULL,
	[LV_3_APPR_YN] [varchar](1) NOT NULL,
	[LV_4_APPR_YN] [varchar](1) NOT NULL,
	[LV_5_APPR_YN] [varchar](1) NOT NULL,
	[RGSTR_ID] [varchar](10) NOT NULL,
	[RGST_DT] [datetime] NOT NULL,
	[MODID] [varchar](10) NULL,
	[UPD_DT] [datetime] NOT NULL,
 CONSTRAINT [SX_GW0140_PK] PRIMARY KEY CLUSTERED 
(
	[CORP_NO] ASC,
	[USR_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[team]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[team](
	[ID] [int] NOT NULL,
	[구분] [nvarchar](50) NULL,
	[참조] [nvarchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[timecode]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[timecode](
	[ID] [int] NOT NULL,
	[구분] [nvarchar](255) NULL,
	[출근] [nvarchar](255) NULL,
	[퇴근] [nvarchar](255) NULL,
	[휴일] [int] NULL,
	[제목] [nvarchar](50) NULL,
	[참조] [ntext] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[users]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[users](
	[ID] [int] NOT NULL,
	[순서] [int] NULL,
	[u_name] [nvarchar](50) NULL,
	[u_pass] [nvarchar](50) NULL,
	[직책] [nvarchar](50) NULL,
	[u_power] [int] NULL,
	[생일] [nvarchar](50) NULL,
	[집전화] [nvarchar](50) NULL,
	[휴대폰] [nvarchar](50) NULL,
	[이메일] [nvarchar](50) NULL,
	[주소] [nvarchar](100) NULL,
	[거소] [nvarchar](100) NULL,
	[거소전화] [nvarchar](50) NULL,
	[입사일] [nvarchar](50) NULL,
	[연봉] [int] NULL,
	[연가] [int] NULL,
	[업무] [nvarchar](50) NULL,
	[출근] [nvarchar](50) NULL,
	[주말] [nvarchar](50) NULL,
	[OT] [int] NULL,
	[OT구분] [nvarchar](50) NULL,
	[식비] [nvarchar](50) NULL,
	[배우자] [nvarchar](50) NULL,
	[부양가족] [int] NULL,
	[팀] [nvarchar](50) NULL,
	[병력] [nvarchar](50) NULL,
	[학력] [nvarchar](50) NULL,
	[해고일] [nvarchar](50) NULL,
	[퇴직일] [nvarchar](50) NULL,
	[퇴직사유] [nvarchar](250) NULL,
	[금품청산] [nvarchar](250) NULL,
	[경력] [ntext] NULL,
	[자격] [ntext] NULL,
	[계약조건] [ntext] NULL,
	[참조] [ntext] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[vacation]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[vacation](
	[ID] [int] NOT NULL,
	[구분] [nvarchar](20) NULL,
	[예정일] [ntext] NULL,
	[일수] [real] NULL,
	[내용] [ntext] NULL,
	[이름] [nvarchar](10) NULL,
	[업무] [ntext] NULL,
	[작성일] [nvarchar](50) NULL,
	[대행자] [nvarchar](10) NULL,
	[대행승인] [nvarchar](50) NULL,
	[결재자] [nvarchar](50) NULL,
	[결재] [nvarchar](50) NULL,
	[결재일] [nvarchar](50) NULL,
	[차감] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[vacationt]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[vacationt](
	[ID] [int] NOT NULL,
	[년도] [nvarchar](50) NULL,
	[이름] [nvarchar](50) NULL,
	[연가] [int] NULL,
	[참조] [ntext] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[workchange]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[workchange](
	[ID] [int] NOT NULL,
	[name] [nvarchar](50) NULL,
	[date1] [nvarchar](50) NULL,
	[date2] [nvarchar](50) NULL,
	[workplan] [nvarchar](50) NULL,
	[workchange] [nvarchar](50) NULL,
	[사유] [ntext] NULL,
	[업무] [ntext] NULL,
	[작성일] [nvarchar](50) NULL,
	[대행자] [nvarchar](50) NULL,
	[대행승인] [nvarchar](50) NULL,
	[승인] [nvarchar](50) NULL,
	[승인시각] [nvarchar](50) NULL,
	[승인자] [nvarchar](50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[workplan]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[workplan](
	[ID] [int] NOT NULL,
	[u_id] [int] NULL,
	[name] [nvarchar](50) NULL,
	[date] [nvarchar](50) NULL,
	[주말] [nvarchar](50) NULL,
	[업무] [nvarchar](50) NULL,
	[d1] [nvarchar](50) NULL,
	[d2] [nvarchar](50) NULL,
	[d3] [nvarchar](50) NULL,
	[d4] [nvarchar](50) NULL,
	[d5] [nvarchar](50) NULL,
	[d6] [nvarchar](50) NULL,
	[d7] [nvarchar](50) NULL,
	[d8] [nvarchar](50) NULL,
	[d9] [nvarchar](50) NULL,
	[d10] [nvarchar](50) NULL,
	[d11] [nvarchar](50) NULL,
	[d12] [nvarchar](50) NULL,
	[d13] [nvarchar](50) NULL,
	[d14] [nvarchar](50) NULL,
	[d15] [nvarchar](50) NULL,
	[d16] [nvarchar](50) NULL,
	[d17] [nvarchar](50) NULL,
	[d18] [nvarchar](50) NULL,
	[d19] [nvarchar](50) NULL,
	[d20] [nvarchar](50) NULL,
	[d21] [nvarchar](50) NULL,
	[d22] [nvarchar](50) NULL,
	[d23] [nvarchar](50) NULL,
	[d24] [nvarchar](50) NULL,
	[d25] [nvarchar](50) NULL,
	[d26] [nvarchar](50) NULL,
	[d27] [nvarchar](50) NULL,
	[d28] [nvarchar](50) NULL,
	[d29] [nvarchar](50) NULL,
	[d30] [nvarchar](50) NULL,
	[d31] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[works]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[works](
	[ID] [int] NOT NULL,
	[구분] [nvarchar](50) NULL,
	[참조] [nvarchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[worktime]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[worktime](
	[ID] [int] NOT NULL,
	[name] [nvarchar](50) NULL,
	[date] [nvarchar](50) NULL,
	[timein] [nvarchar](50) NULL,
	[timeout] [nvarchar](50) NULL,
	[worktime] [real] NULL,
	[ottime0] [real] NULL,
	[ottime1] [real] NULL,
	[ottime2] [real] NULL,
	[ottime3] [real] NULL,
	[ottime4] [real] NULL,
	[tottime] [real] NULL,
	[food] [real] NULL,
	[otdetail] [nvarchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[환경설정]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[환경설정](
	[ID] [int] NOT NULL,
	[ot] [real] NULL,
	[nt] [real] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX01_SX_GW0010]    Script Date: 2026-03-30 오후 1:12:19 ******/
CREATE UNIQUE NONCLUSTERED INDEX [IX01_SX_GW0010] ON [dbo].[SX_GW0010]
(
	[CORP_NO] ASC,
	[USR_NM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
ALTER TABLE [dbo].[errorMng] ADD  CONSTRAINT [DF_errorMng_work_dt]  DEFAULT (getdate()) FOR [work_dt]
GO
ALTER TABLE [dbo].[SX_CO0030] ADD  CONSTRAINT [DF_SX_CO0030_PROP_YN]  DEFAULT ('N') FOR [PROP_YN]
GO
ALTER TABLE [dbo].[SX_CO0040] ADD  CONSTRAINT [DF_SX_CO0040_COMM_CD_USE_YN]  DEFAULT ('N') FOR [COMM_CD_USE_YN]
GO
ALTER TABLE [dbo].[SX_CO0070] ADD  CONSTRAINT [DF_SX_CO0070_WORK_CD_USE_YN]  DEFAULT ('N') FOR [WORK_CD_USE_YN]
GO
ALTER TABLE [dbo].[SX_CO0070] ADD  CONSTRAINT [DF_SX_CO0070_HOLIDAY_YN]  DEFAULT ('N') FOR [HOLIDAY_YN]
GO
ALTER TABLE [dbo].[SX_CO0100] ADD  CONSTRAINT [DF_SX_CO0100_WORK_DT]  DEFAULT (CONVERT([varchar],getdate(),(112))) FOR [WORK_DT]
GO
ALTER TABLE [dbo].[SX_GW0010] ADD  CONSTRAINT [DF_SX_GW0010_SPOUSE_YN]  DEFAULT ('N') FOR [SPOUSE_YN]
GO
ALTER TABLE [dbo].[SX_GW0010] ADD  CONSTRAINT [DF_SX_GW0010_APPR_YN]  DEFAULT ('N') FOR [APPR_YN]
GO
ALTER TABLE [dbo].[SX_GW0050] ADD  CONSTRAINT [DF_SX_GW0050_ABTI_YN]  DEFAULT ('N') FOR [ABTI_YN]
GO
ALTER TABLE [dbo].[SX_GW0080] ADD  CONSTRAINT [DF_SX_GW0080_NML_WORK_RCNTN_YN]  DEFAULT ('N') FOR [NML_WORK_RCNTN_YN]
GO
ALTER TABLE [dbo].[SX_GW0140] ADD  CONSTRAINT [DF_SX_GW0140_LV_1_APPR_YN]  DEFAULT ('N') FOR [LV_1_APPR_YN]
GO
ALTER TABLE [dbo].[SX_GW0140] ADD  CONSTRAINT [DF_SX_GW0140_LV_2_APPR_YN]  DEFAULT ('N') FOR [LV_2_APPR_YN]
GO
ALTER TABLE [dbo].[SX_GW0140] ADD  CONSTRAINT [DF_SX_GW0140_LV_3_APPR_YN]  DEFAULT ('N') FOR [LV_3_APPR_YN]
GO
ALTER TABLE [dbo].[SX_GW0140] ADD  CONSTRAINT [DF_SX_GW0140_LV_4_APPR_YN]  DEFAULT ('N') FOR [LV_4_APPR_YN]
GO
ALTER TABLE [dbo].[SX_GW0140] ADD  CONSTRAINT [DF_SX_GW0140_LV_5_APPR_YN]  DEFAULT ('N') FOR [LV_5_APPR_YN]
GO
ALTER TABLE [dbo].[SX_CO0080]  WITH CHECK ADD  CONSTRAINT [SX_CO0080_SX_CO0080_FK01] FOREIGN KEY([CORP_NO], [UPPER_MENU_NO])
REFERENCES [dbo].[SX_CO0080] ([CORP_NO], [MENU_NO])
GO
ALTER TABLE [dbo].[SX_CO0080] CHECK CONSTRAINT [SX_CO0080_SX_CO0080_FK01]
GO
ALTER TABLE [dbo].[SX_CO0090]  WITH CHECK ADD  CONSTRAINT [SX_CO0090_SX_CO0080_FK01] FOREIGN KEY([CORP_NO], [MENU_NO])
REFERENCES [dbo].[SX_CO0080] ([CORP_NO], [MENU_NO])
GO
ALTER TABLE [dbo].[SX_CO0090] CHECK CONSTRAINT [SX_CO0090_SX_CO0080_FK01]
GO
ALTER TABLE [dbo].[SX_GW0010]  WITH CHECK ADD  CONSTRAINT [SX_GW0010_SX_CO0010_FK01] FOREIGN KEY([CORP_NO])
REFERENCES [dbo].[SX_CO0010] ([CORP_NO])
GO
ALTER TABLE [dbo].[SX_GW0010] CHECK CONSTRAINT [SX_GW0010_SX_CO0010_FK01]
GO
ALTER TABLE [dbo].[SX_GW0020]  WITH CHECK ADD  CONSTRAINT [SX_GW0020_SX_CO0010_FK01] FOREIGN KEY([CORP_NO])
REFERENCES [dbo].[SX_CO0010] ([CORP_NO])
GO
ALTER TABLE [dbo].[SX_GW0020] CHECK CONSTRAINT [SX_GW0020_SX_CO0010_FK01]
GO
ALTER TABLE [dbo].[SX_GW0030]  WITH CHECK ADD  CONSTRAINT [SX_GW0030_SX_GW0020_FK01] FOREIGN KEY([CORP_NO], [UNTY_BBS_CD], [UNTY_BBS_SNO])
REFERENCES [dbo].[SX_GW0020] ([CORP_NO], [UNTY_BBS_CD], [UNTY_BBS_SNO])
GO
ALTER TABLE [dbo].[SX_GW0030] CHECK CONSTRAINT [SX_GW0030_SX_GW0020_FK01]
GO
ALTER TABLE [dbo].[SX_GW0050]  WITH CHECK ADD  CONSTRAINT [SX_GW0050_SX_GW0010_FK01] FOREIGN KEY([CORP_NO], [USR_ID])
REFERENCES [dbo].[SX_GW0010] ([CORP_NO], [USR_ID])
GO
ALTER TABLE [dbo].[SX_GW0050] CHECK CONSTRAINT [SX_GW0050_SX_GW0010_FK01]
GO
ALTER TABLE [dbo].[SX_GW0110]  WITH CHECK ADD  CONSTRAINT [SX_GW0110_SX_GW0090_FK01] FOREIGN KEY([CORP_NO], [APRVL_DOC_ID])
REFERENCES [dbo].[SX_GW0090] ([CORP_NO], [APRVL_DOC_ID])
GO
ALTER TABLE [dbo].[SX_GW0110] CHECK CONSTRAINT [SX_GW0110_SX_GW0090_FK01]
GO
ALTER TABLE [dbo].[SX_GW0120]  WITH CHECK ADD  CONSTRAINT [SX_GW0120_SX_GW0090_FK01] FOREIGN KEY([CORP_NO], [APRVL_DOC_ID])
REFERENCES [dbo].[SX_GW0090] ([CORP_NO], [APRVL_DOC_ID])
GO
ALTER TABLE [dbo].[SX_GW0120] CHECK CONSTRAINT [SX_GW0120_SX_GW0090_FK01]
GO
ALTER TABLE [dbo].[SX_GW0130]  WITH CHECK ADD  CONSTRAINT [SX_GW0130_SX_GW0010_FK01] FOREIGN KEY([CORP_NO], [USR_ID])
REFERENCES [dbo].[SX_GW0010] ([CORP_NO], [USR_ID])
GO
ALTER TABLE [dbo].[SX_GW0130] CHECK CONSTRAINT [SX_GW0130_SX_GW0010_FK01]
GO
ALTER TABLE [dbo].[SX_GW0140]  WITH CHECK ADD  CONSTRAINT [SX_GW0140_SX_GW0010_FK01] FOREIGN KEY([CORP_NO], [USR_ID])
REFERENCES [dbo].[SX_GW0010] ([CORP_NO], [USR_ID])
GO
ALTER TABLE [dbo].[SX_GW0140] CHECK CONSTRAINT [SX_GW0140_SX_GW0010_FK01]
GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_delete]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-02-02
-- Create Description :	스카이브릿지 그룹웨어 결재문서 삭제
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_approval_delete '1111',0, '00001'
-- exec pr_skybridge_gw_approval_delete '0000',0, '00001'


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_delete]

		     @CORP_NO VARCHAR(15)      --회사번호CORP_NO
		  ,  @APRVL_DOC_ID INT         --결재문서ID
		  ,  @USR_ID VARCHAR(10)       --사용자ID


AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

	DECLARE @BIZM_CNT AS INT
	SET @BIZM_CNT = 0


		-- 업무관리자 권한이 있는지 체크
		SELECT @BIZM_CNT = COUNT('A')  
		FROM SX_GW0130 A
		WHERE 1=1
		AND   CORP_NO = @CORP_NO
		AND   USR_ID  = @USR_ID
		AND   MENU_AUTH_CD = 'BIZM'  --업무관리자

		--만약 0 이면 업무관리자 권한이 없어서 처리 불가
		IF @BIZM_CNT = 0 
			BEGIN
				RAISERROR('해당 ID는 업무관리자가 아닙니다. 확인해 주세요.', 16, 1)
				RETURN
			END 


        BEGIN TRAN

			--근무변경 삭제 (SX_GW0110)
			DELETE  
			FROM  SX_GW0110
			WHERE 1=1
			AND   CORP_NO = @CORP_NO
			AND   APRVL_DOC_ID = @APRVL_DOC_ID

			--지각조퇴기록 삭제 (SX_GW0080)
			DELETE  
			FROM  SX_GW0080
			WHERE 1=1
			AND   CORP_NO = @CORP_NO
			AND   APRVL_DOC_ID = @APRVL_DOC_ID

			--결재완료 삭제 (SX_GW0100)
			DELETE  
			FROM  SX_GW0100
			WHERE 1=1
			AND   CORP_NO = @CORP_NO
			AND   APRVL_DOC_ID = @APRVL_DOC_ID

			--결재신청 삭제 (SX_GW0090)
			DELETE  
			FROM  SX_GW0090
			WHERE 1=1
			AND   CORP_NO = @CORP_NO
			AND   APRVL_DOC_ID = @APRVL_DOC_ID

	
		COMMIT; 


	
END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_delete_myDoc]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-02-02
-- Create Description :	스카이브릿지 그룹웨어 결재문서 삭제 (본인이 작성한 문서일 경우에만)
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_approval_delete '1111',0, '00001'
-- exec pr_skybridge_gw_approval_delete '0000',0, '00001'


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_delete_myDoc]

		     @CORP_NO VARCHAR(15)      --회사번호CORP_NO
		  ,  @APRVL_DOC_ID INT         --결재문서ID
		  ,  @USR_ID VARCHAR(10)       --사용자ID


AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

	DECLARE @BIZM_CNT AS INT
	SET @BIZM_CNT = 0


		-- 업무관리자 권한이 있는지 체크
		SELECT @BIZM_CNT = COUNT('A')  
		FROM SX_GW0090 A
		WHERE 1=1
		AND   CORP_NO = @CORP_NO
		AND   APLNT_ID  = @USR_ID
		AND   APRVL_DOC_ID = @APRVL_DOC_ID
		AND   APRVL_CMPL_SNO IS NULL

		

		--만약 0 이면 업무관리자 권한이 없어서 처리 불가
		IF @BIZM_CNT = 0 
			BEGIN
				RAISERROR('결재가 진행/완료 되었거나, 삭제 권한이 없습니다. 확인해 주세요.', 16, 1)
				RETURN
			END 


        BEGIN TRAN

			--근무변경 삭제 (SX_GW0110)
			DELETE  
			FROM  SX_GW0110
			WHERE 1=1
			AND   CORP_NO = @CORP_NO
			AND   APRVL_DOC_ID = @APRVL_DOC_ID

			--지각조퇴기록 삭제 (SX_GW0080)
			DELETE  
			FROM  SX_GW0080
			WHERE 1=1
			AND   CORP_NO = @CORP_NO
			AND   APRVL_DOC_ID = @APRVL_DOC_ID

			--결재완료 삭제 (SX_GW0100)
			DELETE  
			FROM  SX_GW0100
			WHERE 1=1
			AND   CORP_NO = @CORP_NO
			AND   APRVL_DOC_ID = @APRVL_DOC_ID

			--결재신청 삭제 (SX_GW0090)
			DELETE  
			FROM  SX_GW0090
			WHERE 1=1
			AND   CORP_NO = @CORP_NO
			AND   APRVL_DOC_ID = @APRVL_DOC_ID

	
		COMMIT; 


	
END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_document_group_count]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 내가 올린 결재 문서 개수
-- Update date :
-- Update Description :

--exec pr_skybridge_gw_approval_document_group_count '1111', '00001'
-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_document_group_count]

	     @CORP_NO VARCHAR(15) --회사코드
		, @USR_ID VARCHAR(20) --사용자

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  
	
	SELECT
		1 AS SORT 
		,'☆내가 올린 결재 문서' AS STUS_NM
		,'' AS DOC_CNT

	UNION ALL
	SELECT
		2 AS SORT 
		, ' - 작성중' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0090
	WHERE 1=1
		AND APRVL_STUS_CD IS NOT NULL
		AND DATEPART(YYYY, RGST_DT) = DATEPART(YYYY, GETDATE())
		AND CORP_NO = @CORP_NO 
		AND APLNT_ID = @USR_ID
		AND APRVL_STUS_CD = '0001'

	UNION ALL
	SELECT
		3 AS SORT 
		, ' - 미결재' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0090
	WHERE 1=1
		AND APRVL_STUS_CD IS NOT NULL
		AND DATEPART(YYYY, RGST_DT) = DATEPART(YYYY, GETDATE())
		AND CORP_NO = @CORP_NO 
		AND APLNT_ID = @USR_ID
		AND APRVL_STUS_CD = '0002'

	UNION ALL
	SELECT
		4 AS SORT 
		, ' - 승인' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0090
	WHERE 1=1
		AND APRVL_STUS_CD IS NOT NULL
		AND DATEPART(YYYY, RGST_DT) = DATEPART(YYYY, GETDATE())
		AND CORP_NO = @CORP_NO 
		AND APLNT_ID = @USR_ID
		AND APRVL_STUS_CD = '0003'
		AND ISNULL(DOC_FLAG, '') != 'A'
/*
	UNION ALL
	SELECT
		5 AS SORT 
		, ' - 반려' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0090 A
		LEFT OUTER JOIN SX_GW0100 B
		ON A.CORP_NO = B.CORP_NO AND A.APRVL_DOC_ID = B.APRVL_DOC_ID AND APRVL_SNO = 1
	WHERE 1=1
		AND A.APRVL_STUS_CD IS NOT NULL
		AND DATEPART(YYYY, A.RGST_DT) = DATEPART(YYYY, GETDATE())
		AND A.CORP_NO = @CORP_NO 
		AND A.APLNT_ID = @USR_ID
		AND A.APRVL_STUS_CD = '0004'
		AND ISNULL(B.DOC_FLAG, '') = 'A'
		AND ISNULL(A.DOC_FLAG, '') != 'A'
*/

	UNION ALL
	SELECT
		5 AS SORT 
		, ' - 반려' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0090 A
		LEFT OUTER JOIN SX_GW0100 B
		ON A.CORP_NO = B.CORP_NO AND A.APRVL_DOC_ID = B.APRVL_DOC_ID AND APRVL_SNO = 1
	WHERE 1=1
		AND A.APRVL_STUS_CD IS NOT NULL
		AND DATEPART(YYYY, A.RGST_DT) = DATEPART(YYYY, GETDATE())
		AND A.CORP_NO = @CORP_NO 
		AND A.APLNT_ID = @USR_ID
		AND A.APRVL_STUS_CD = '0004'
		AND (B.APPR_STUS_CD = '0004' OR (B.APPR_STUS_CD != '0004' AND ISNULL(B.DOC_FLAG, '') = 'A'))
		AND ISNULL(A.DOC_FLAG, '') != 'A'
		/*
		AND B.APPR_STUS_CD = '0004'
		AND ISNULL(A.DOC_FLAG, '') != 'A'
		*/

	UNION ALL
	SELECT
		6 AS SORT 
		,'☆내가 받은 결재 문서' AS STUS_NM
		,'' AS DOC_CNT

	UNION ALL
	SELECT
		7 AS SORT
		, ' - 미결재' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0100 A
		LEFT OUTER JOIN SX_GW0090 B
		ON A.CORP_NO = B.CORP_NO AND A.APRVL_DOC_ID = B.APRVL_DOC_ID
	WHERE 1=1
		AND B.APRVL_DOC_ID IS NOT NULL
		AND DATEPART(YYYY, A.RGST_DT) = DATEPART(YYYY, GETDATE())
		AND A.CORP_NO = @CORP_NO
		AND A.APPR_ID = @USR_ID
		AND ISNULL(A.APPR_STUS_CD, '') = '0002'

	UNION ALL
	SELECT
		8 AS SORT
		, ' - 미확인' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0100 A
		LEFT OUTER JOIN SX_GW0090 B
		ON A.CORP_NO = B.CORP_NO AND A.APRVL_DOC_ID = B.APRVL_DOC_ID
	WHERE 1=1
		AND B.APRVL_DOC_ID IS NOT NULL
		AND DATEPART(YYYY, A.RGST_DT) = DATEPART(YYYY, GETDATE())
		AND A.CORP_NO = @CORP_NO
		AND A.APPR_ID = @USR_ID
		AND A.APRVL_SNO = 1
		AND ISNULL(A.APPR_STUS_CD, '') = '0003'
		AND ISNULL(B.APRVL_STUS_CD, '') = '0004'
		AND ISNULL(A.DOC_FLAG, '') != 'A'

	UNION ALL
	SELECT
		9 AS SORT
		, ' - 승인' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0100 A
		LEFT OUTER JOIN SX_GW0090 B
		ON A.CORP_NO = B.CORP_NO AND A.APRVL_DOC_ID = B.APRVL_DOC_ID
	WHERE 1=1
		AND B.APRVL_DOC_ID IS NOT NULL
		AND DATEPART(YYYY, A.RGST_DT) = DATEPART(YYYY, GETDATE())
		AND A.CORP_NO = @CORP_NO
		AND A.APPR_ID = @USR_ID
		AND A.APRVL_SNO = 1
		AND ISNULL(A.APPR_STUS_CD, '') = '0003'
		AND ISNULL(B.APRVL_STUS_CD, '') = '0002'

	UNION ALL
	SELECT
		10 AS SORT
		, ' - 반려' AS STUS_NM
		, '('+ CONVERT(VARCHAR, COUNT('A')) +')' AS DOC_CNT
	FROM SX_GW0100 A
		LEFT OUTER JOIN SX_GW0090 B
		ON A.CORP_NO = B.CORP_NO AND A.APRVL_DOC_ID = B.APRVL_DOC_ID
		LEFT OUTER JOIN SX_GW0100 C
		ON A.CORP_NO = C.CORP_NO AND A.APRVL_DOC_ID = C.APRVL_DOC_ID AND A.APRVL_SNO != C.APRVL_SNO
	WHERE 1=1
		AND B.APRVL_DOC_ID IS NOT NULL
		AND DATEPART(YYYY, A.RGST_DT) = DATEPART(YYYY, GETDATE())
		AND A.CORP_NO = @CORP_NO
		AND A.APPR_ID = @USR_ID
		AND ISNULL(B.APRVL_STUS_CD, '') = '0004'
		AND(
			(A.APRVL_SNO = 1 AND ISNULL(B.DOC_FLAG, '') != 'A' AND A.DOC_FLAG = 'A')
			OR
			(A.APRVL_SNO = 2 AND ISNULL(C.DOC_FLAG, '') != 'A' AND ISNULL(A.APPR_STUS_CD, '') = '0004')
		) 

	ORDER BY SORT ASC

		


END --PROCEDURE END
GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_document_list_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 결재문서 결재 리스트 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_approval_document_list_select '1111','00001','','','','','','',1,20000,20000, '20070101', '20171231', ''  --1페이지
-- exec pr_skybridge_gw_approval_document_list_select '1111','00001','','','','','','',2,20,20, '20070101', '20171231', ''  --2페이지
-- exec pr_skybridge_gw_approval_document_list_select '1111','10212','','','','','','',1,20000,20000,'20070101', '20171231', ''  --1페이지


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_document_list_select]

		     @P0 VARCHAR(15)      --CORP_NO
		  ,  @P1 VARCHAR(10)      --APPR_ID
		  ,  @P2 VARCHAR(20)      --
		  ,  @P3 VARCHAR(4)      --APPR_STUS_CD
		  ,  @P4 VARCHAR(20)      --
		  ,  @P5 VARCHAR(4)      --APRVL_STUS_CD
		  ,  @P6 VARCHAR(20)      --
		  ,  @P7 VARCHAR(4)      --APRVL_KIND_CD
		  ,  @P8 INT            -- 조회 페이지 번호
		  ,  @P9 INT            -- 한행에 조회되는 행수
		  ,  @P10 INT           -- 한행에 조회되는 행수
		  ,	 @P11 VARCHAR(20)	-- 검색 시작일
		  ,	 @P12 VARCHAR(20)	-- 검색 종료일
		  ,  @P13 VARCHAR(4)	-- 진행상태
AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		-- 신규 작성
		SELECT
			   A.APRVL_SNO,
			   CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			   A.APPR_STUS_CD,

			   A.APRVL_DOC_ID,
			   A.APRVL_STUS_CD,
			   A.APRVL_KIND_CD,
			   SUBSTRING(CONVERT(VARCHAR, A.OFFER_DT, 120),1,10) AS OFFER_DT,
			   CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,


			   ISNULL(A.APRVL_CMPL_SNO,0) AS APRVL_CMPL_SNO,
			   ISNULL(A.FINAL_APRVL_SNO,0) AS FINAL_APRVL_SNO,

			 --  ■ 스카이브릿지 결재문서 결재 상세 내역 정리
				--- 1.시간외   : 신청내용, 업무내용, OT일자
				--- 2.지각     : 신청내용, 업무내용, 정상근무인정 요청, 지각일자(X), 지각일시 
				--- 3.조퇴     : 신청내용, 업무내용, 정상근무인정 요청, 조퇴일자(X), 조퇴일시 
				--- 4.출퇴근미기록     : 신청내용, 업무내용, 정상근무인정 요청, 결근일자
				--- 5.연차등   : 신청내용, 업무내용, 대행자,            연차 (날자, 연차등)
				--- 6.근무변경 : 신청내용, 업무내용, 대행자,            근무변경(근무일, 변경전, 변경후)
				--- 7.기안     : 신청내용, 업무내용

			   A.APLNT_CN , --신청자 내용
			   A.BZ_CN,     --업무내용

			   --근무코드 : 변경후 근무코드 조회 없으면 변경전 근무코드 조회
			   CASE WHEN APRVL_KIND_CD = '0001' THEN ( SELECT CASE WHEN ISNULL(WORK_CD, '') = '' THEN PLAN_WORK_CD ELSE WORK_CD END AS WORK_CD
                                                         FROM   SX_GW0050
                                                        WHERE  CORP_NO = @P0
                                                        AND    USR_ID = APLNT_ID
														AND    WORK_PLAN_YYMMDD = REPLACE(LATE_SKIPOFF_ABTI_OT_DATE, '-', '')
													  )

					WHEN APRVL_KIND_CD = '0002' THEN ( SELECT CASE WHEN ISNULL(WORK_CD, '') = '' THEN PLAN_WORK_CD ELSE WORK_CD END AS WORK_CD
                                                         FROM   SX_GW0050
                                                        WHERE  CORP_NO = @P0
                                                        AND    USR_ID = APLNT_ID
														AND    WORK_PLAN_YYMMDD = REPLACE(SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120),1,10), '-', '')
													  )

					WHEN APRVL_KIND_CD = '0003' THEN ( SELECT CASE WHEN ISNULL(WORK_CD, '') = '' THEN PLAN_WORK_CD ELSE WORK_CD END AS WORK_CD
                                                         FROM   SX_GW0050
                                                        WHERE  CORP_NO = @P0
                                                        AND    USR_ID = APLNT_ID
														AND    WORK_PLAN_YYMMDD = REPLACE(SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120),1,10), '-', '')
													  )

					WHEN APRVL_KIND_CD = '0004' THEN ( SELECT CASE WHEN ISNULL(WORK_CD, '') = '' THEN PLAN_WORK_CD ELSE WORK_CD END AS WORK_CD
                                                         FROM   SX_GW0050
                                                        WHERE  CORP_NO = @P0
                                                        AND    USR_ID = APLNT_ID
														AND    WORK_PLAN_YYMMDD = REPLACE(SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_ABTI_OT_DATE, 120),1,10), '-', '')
													  )

					WHEN APRVL_KIND_CD = '0005' THEN ( SELECT CASE WHEN ISNULL(WORK_CD, '') = '' THEN PLAN_WORK_CD ELSE WORK_CD END AS WORK_CD
                                                         FROM   SX_GW0050
                                                        WHERE  CORP_NO = @P0
                                                        AND    USR_ID = APLNT_ID
														AND    WORK_PLAN_YYMMDD = REPLACE(SUBSTRING(A.UPD_DATE_YC,1,10), '-', '')
													  )

					WHEN APRVL_KIND_CD = '0006' THEN UPD_BF_WORK_CD

					WHEN APRVL_KIND_CD = '0007' THEN ''

					ELSE ''
               END AS WORK_CD ,  


			   --상세1
			   CASE WHEN APRVL_KIND_CD = '0001' THEN 'OT : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
				    WHEN APRVL_KIND_CD = '0002' THEN '실제 : ' + SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120),1,16)
				    WHEN APRVL_KIND_CD = '0003' THEN CASE WHEN A.NML_WORK_RCNTN_YN = 'Y'THEN '조기퇴근' ELSE '' END     -- '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0004' THEN '출퇴근미기록 : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
			        WHEN APRVL_KIND_CD = '0005' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0006' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_01 ,  --상세내역 01
			   

			   --상세2
			   CASE WHEN APRVL_KIND_CD = '0001' THEN  ( SELECT CASE WHEN ISNULL(WORK_START_DT, '') = '' 
			                                                        THEN SUBSTRING(CONVERT(VARCHAR, REAL_START_DT, 120),12,5)  
																	ELSE SUBSTRING(CONVERT(VARCHAR, WORK_START_DT, 120),12,5)  END 
			                                                    + ' ~ ' +
														        CASE WHEN ISNULL(WORK_END_DT, '') = '' 
			                                                        THEN SUBSTRING(CONVERT(VARCHAR, REAL_END_DT, 120),12,5)  
																	ELSE SUBSTRING(CONVERT(VARCHAR, WORK_END_DT, 120),12,5)  END 
                                                         FROM   SX_GW0050
                                                        WHERE  CORP_NO = @P0
                                                        AND    USR_ID = APLNT_ID
														AND    WORK_PLAN_YYMMDD = REPLACE(LATE_SKIPOFF_ABTI_OT_DATE, '-', '')
													  )	   
				    WHEN APRVL_KIND_CD = '0002' THEN '승인 : ' + SUBSTRING(CONVERT(VARCHAR, A.REQUEST_DT, 120),1,16)
				    WHEN APRVL_KIND_CD = '0003' THEN '조퇴 : ' + SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120),1,16)
				    WHEN APRVL_KIND_CD = '0004' THEN  SUBSTRING(CONVERT(VARCHAR, REQUEST_DT, 120),12,5) + ' ~ ' + SUBSTRING(CONVERT(VARCHAR, REQUEST_DT2, 120),12,5)
			        WHEN APRVL_KIND_CD = '0005' THEN '연차 : ' + UPD_DATE_YC + ' ' + FREE_CNT
			        WHEN APRVL_KIND_CD = '0006' THEN '변경 : ' + UPD_DATE_CHANGE + '(' + UPD_BF_WORK_CD + '-->' + UPD_WORK_CD + ')'
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_02 , -- 상세내역02


			   --상세3
			   CASE WHEN APRVL_KIND_CD = '0001' THEN '' 
				    WHEN APRVL_KIND_CD = '0002' THEN ''
			        WHEN APRVL_KIND_CD = '0003' THEN ''
			        WHEN APRVL_KIND_CD = '0004' THEN ''
			        WHEN APRVL_KIND_CD = '0005' THEN ''
			        WHEN APRVL_KIND_CD = '0006' THEN ''
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_03 ,  --상세내역 03

			   --A.OFFER_CN,  --신청내용
			   --A.UPD_DT,  --변경일시

			   A.APLNT_ID,
			   A.APLNT_NM,
			   A.LATE_SKIPOFF_ABTI_OT_DATE
		  FROM (
 					SELECT A.CORP_NO,
						   A.APRVL_SNO,
						   A.APRVL_DT,
						   A.APPR_STUS_CD,
						   B.APRVL_DOC_ID,
						   B.APRVL_STUS_CD,
						   B.APRVL_KIND_CD,
						   B.OFFER_DT,
						   B.CMPL_DT,
						   B.APRVL_CMPL_SNO,
						   B.FINAL_APRVL_SNO,
						   B.APLNT_ID,

						   U1.USR_NM AS APLNT_NM,

						   U2.LATE_SKIPOFF_ABTI_OT_DATE,
						   U2.NML_WORK_RCNTN_YN,
						   U2.LATE_SKIPOFF_OT_DT,
						   U2.REQUEST_DT,  --승인출근요청일시
						   U2.REQUEST_DT2, --승인퇴근요청일시

						   U3.UPD_DATE_YC,
						   U3.FREE_CNT,

						   U4.USR_NM AS BZ_DEPUTY_NM,

						   U3.UPD_DATE_CHANGE,
						   U3.UPD_BF_WORK_CD,
						   U3.UPD_WORK_CD,

						   B.APLNT_CN ,
						   B.BZ_CN,
						   B.OFFER_CN,
						   B.UPD_DT
 
					  --FROM SX_GW0090 B
						 --  LEFT OUTER JOIN
						 --   ( SELECT * FROM SX_GW0100
					  --       WHERE 1=1
							-- AND   CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + CONVERT(VARCHAR, APRVL_SNO) IN 
							--              (SELECT  CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + MAX(CONVERT(VARCHAR, APRVL_SNO))
							--			   FROM    SX_GW0100
							--			   WHERE   CORP_NO = @P0
							--			   GROUP BY CORP_NO, APRVL_DOC_ID 
							--)


					  FROM SX_GW0100 A LEFT JOIN 
						   SX_GW0090 B
						   ON (1=1
							   AND B.CORP_NO = A.CORP_NO
							   AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
						      )

						   LEFT JOIN SX_GW0010 U1
						   ON(1=1
							AND U1.CORP_NO = B.CORP_NO
							AND U1.USR_ID = B.APLNT_ID
					         ) 

						   LEFT JOIN SX_GW0080 U2  --SX_지각조퇴기록
						   ON(1=1
							AND U2.CORP_NO = A.CORP_NO
							AND U2.APRVL_DOC_ID = A.APRVL_DOC_ID
					         ) 

							 LEFT JOIN (SELECT TA.CORP_NO
							                 , APRVL_DOC_ID
											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차

											 , CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY))  + '일' AS FREE_CNT --연차 일수

											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)) AS UPD_DATE_CHANGE --근무변경
											 , MIN(UPD_BF_WORK_CD) AS UPD_BF_WORK_CD  --변경전 근무 코드
											 , MIN(UPD_WORK_CD) AS UPD_WORK_CD  --변경후 근무코드
							            FROM   SX_GW0110 TA LEFT JOIN SX_CO0070 TB ON TB.CORP_NO = TA.CORP_NO AND TB.WORK_CD = TA.UPD_WORK_CD
										GROUP BY TA.CORP_NO, TA.APRVL_DOC_ID
										) U3  
						   ON(1=1
							AND U3.CORP_NO = A.CORP_NO
							AND U3.APRVL_DOC_ID = A.APRVL_DOC_ID
					         ) 
							  
						   LEFT JOIN  SX_GW0010 U4
								ON(1=1
								AND U4.USR_ID = B.BZ_DEPUTY_ID )


		 WHERE 1=1
		   AND B.APRVL_DOC_ID IS NOT NULL
		   AND A.CORP_NO = @P0
		   AND (A.APPR_ID = @P1)
		   AND (NULLIF(@P2, '') IS NULL OR A.APPR_STUS_CD = @P3)
		   AND (NULLIF(@P4, '') IS NULL OR B.APRVL_STUS_CD = @P5)
		   AND (NULLIF(@P6, '') IS NULL OR B.APRVL_KIND_CD = @P7)

		   AND (CONVERT(VARCHAR, B.UPD_DT, 112) BETWEEN REPLACE(@P11, '-', '') AND REPLACE(@P12, '-', ''))

		   /*	추가 조건 시작	*/
		   AND (
				  (NULLIF(@P13, '') IS NULL)
			   OR (NULLIF(@P13, '0001') IS NULL AND ISNULL(A.APPR_STUS_CD, '') = '0002')	-- 미결재
			   OR (NULLIF(@P13, '0002') IS NULL AND (A.APRVL_SNO = '1' AND B.APRVL_STUS_CD = '0004' AND A.APPR_STUS_CD = '0003' AND ISNULL(A.DOC_FLAG, '') != 'A'))	-- 미확인
			   OR (NULLIF(@P13, '0003') IS NULL AND (A.APRVL_SNO = '1' AND B.APRVL_STUS_CD = '0002' AND A.APPR_STUS_CD = '0003'))	-- 승인
			   
			   OR (NULLIF(@P13, '0004') IS NULL AND B.APRVL_STUS_CD = '0004' AND (
						(A.APPR_ID = @P1 AND A.APRVL_SNO = '2' AND ISNULL(A.APPR_STUS_CD, '') = '0004' AND ISNULL((SELECT DOC_FLAG FROM SX_GW0100 WHERE CORP_NO = A.CORP_NO AND APRVL_SNO = '1' AND APRVL_DOC_ID = A.APRVL_DOC_ID), '') != 'A' )
						OR
						(A.APPR_ID = @P1 AND A.APRVL_SNO = '1' AND ISNULL(A.DOC_FLAG, '') != 'A')
						)
					)	--반려
			)
		   /*	추가 조건 끝	*/
 
		 ORDER BY
			   B.OFFER_DT DESC,
			   APRVL_SNO DESC
   
 
		 OFFSET ((@P8 - 1) * @P9) ROWS 
		  FETCH NEXT @P10 ROWS ONLY  
	    
		 ) A
		



	    --기존에 사용한 문장 BACKUP
			--SELECT
			--       A.APRVL_SNO,
			--       CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			--       A.APPR_STUS_CD,

			--       A.APRVL_DOC_ID,
			--       A.APRVL_STUS_CD,
			--       A.APRVL_KIND_CD,
			--       CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			--       CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,
			--       A.APRVL_CMPL_SNO,
			--       A.FINAL_APRVL_SNO,

			--       A.APLNT_ID,
			--       A.APLNT_NM
			--  FROM (
 
   
 
			--SELECT
			--       A.APRVL_SNO,
			--       A.APRVL_DT,
			--       A.APPR_STUS_CD,
			--       B.APRVL_DOC_ID,
			--       B.APRVL_STUS_CD,
			--       B.APRVL_KIND_CD,
			--       B.OFFER_DT,
			--       B.CMPL_DT,
			--       B.APRVL_CMPL_SNO,
			--       B.FINAL_APRVL_SNO,
			--       B.APLNT_ID,
			--       U1.USR_NM AS APLNT_NM
   
 
			--  FROM SX_GW0100 A
			--       JOIN SX_GW0090 B
			--       ON(1=1
			--        AND B.CORP_NO = A.CORP_NO
			--        AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
			--       )
			--       LEFT JOIN SX_GW0010 U1
			--       ON(1=1
			--        AND U1.CORP_NO = B.CORP_NO
			--        AND U1.USR_ID = B.APLNT_ID
			--       )
			-- WHERE 1=1
			--   AND A.CORP_NO = @P0
			--   AND A.APPR_ID = @P1
			--   AND (NULLIF(@P2, '''') IS NULL OR A.APPR_STUS_CD = @P3)

			--   AND (NULLIF(@P4, '''') IS NULL OR B.APRVL_STUS_CD = @P5)
			--   AND (NULLIF(@P6, '''') IS NULL OR B.APRVL_KIND_CD = @P7)
   
 
			-- ORDER BY
			--       B.OFFER_DT DESC,
			--       APRVL_SNO DESC
   
 
			--OFFSET ((@P8 - 1) * @P9) ROWS 
			--FETCH NEXT @P10 ROWS ONLY
   
			--       ) A
		


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_document_list_select_20200109_bak]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 결재문서 결재 리스트 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_approval_document_list_select '1111','00001','','','','','','',1,20000,20000  --1페이지
-- exec pr_skybridge_gw_approval_document_list_select '1111','00001','','','','','','',2,20,20  --2페이지
-- exec pr_skybridge_gw_approval_document_list_select '1111','10212','','','','','','',1,20000,20000  --1페이지
-- EXEC pr_skybridge_gw_approval_document_list_select '1111', '10305', '', '', '', '', '', '', 1, 10000, 10000	--김은중

-- =======================================================================================
create PROCEDURE [dbo].[pr_skybridge_gw_approval_document_list_select_20200109_bak]

		     @P0 VARCHAR(15)      --CORP_NO
		  ,  @P1 VARCHAR(10)      --APPR_ID
		  ,  @P2 VARCHAR(20)      --
		  ,  @P3 VARCHAR(4)      --APPR_STUS_CD
		  ,  @P4 VARCHAR(20)      --
		  ,  @P5 VARCHAR(4)      --APRVL_STUS_CD
		  ,  @P6 VARCHAR(20)      --
		  ,  @P7 VARCHAR(4)      --APRVL_KIND_CD
		  ,  @P8 INT            -- 조회 페이지 번호
		  ,  @P9 INT            -- 한행에 조회되는 행수
		  ,  @P10 INT           -- 한행에 조회되는 행수

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		-- 신규 작성
		SELECT
			   A.APRVL_SNO,
			   CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			   A.APPR_STUS_CD,

			   A.APRVL_DOC_ID,
			   A.APRVL_STUS_CD,
			   A.APRVL_KIND_CD,
			   CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			   CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,


			   ISNULL(A.APRVL_CMPL_SNO,0) AS APRVL_CMPL_SNO,
			   ISNULL(A.FINAL_APRVL_SNO,0) AS FINAL_APRVL_SNO,

			 --  ■ 스카이브릿지 결재문서 결재 상세 내역 정리
				--- 1.시간외   : 신청내용, 업무내용, OT일자
				--- 2.지각     : 신청내용, 업무내용, 정상근무인정 요청, 지각일자(X), 지각일시 
				--- 3.조퇴     : 신청내용, 업무내용, 정상근무인정 요청, 조퇴일자(X), 조퇴일시 
				--- 4.결근     : 신청내용, 업무내용, 정상근무인정 요청, 결근일자
				--- 5.연차등   : 신청내용, 업무내용, 대행자,            연차 (날자, 연차등)
				--- 6.근무변경 : 신청내용, 업무내용, 대행자,            근무변경(근무일, 변경전, 변경후)
				--- 7.기안     : 신청내용, 업무내용

			   A.APLNT_CN , --신청자 내용
			   A.BZ_CN,     --업무내용

			   CASE WHEN APRVL_KIND_CD = '0001' THEN ''
				    WHEN APRVL_KIND_CD = '0002' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0003' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0004' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
			        WHEN APRVL_KIND_CD = '0005' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0006' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0007' THEN ''
			        WHEN APRVL_KIND_CD = '0008' THEN ''
					ELSE ''
               END AS DETAIL_01 ,  --상세내역 01
			   
			   CASE WHEN APRVL_KIND_CD = '0001' THEN 'OT : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
				    WHEN APRVL_KIND_CD = '0002' THEN '지각 : ' + (CASE WHEN ISNULL(A.REQUEST_DT,'') = ''  THEN SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120), 1, 16) ELSE SUBSTRING(CONVERT(VARCHAR, A.REQUEST_DT, 120), 1, 16) END)
				    WHEN APRVL_KIND_CD = '0003' THEN '조퇴 : ' + (CASE WHEN ISNULL(A.REQUEST_DT2,'') = '' THEN SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120), 1, 16) ELSE SUBSTRING(CONVERT(VARCHAR, A.REQUEST_DT2, 120), 1, 16) END)
				    WHEN APRVL_KIND_CD = '0004' THEN '결근 : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) + ' ' + ISNULL(SUBSTRING(CONVERT(VARCHAR, REQUEST_DT, 108), 1, 5), '') + '~' + ISNULL(SUBSTRING(CONVERT(VARCHAR, REQUEST_DT2, 108), 1, 5), '')
			        WHEN APRVL_KIND_CD = '0005' THEN '연차 : ' + UPD_DATE_YC + ' ' + FREE_CNT
			        WHEN APRVL_KIND_CD = '0006' THEN '변경 : ' +  UPD_DATE_CHANGE + '(' + UPD_BF_WORK_CD + '-->' + UPD_WORK_CD + ')'
			        WHEN APRVL_KIND_CD = '0007' THEN ''
			        WHEN APRVL_KIND_CD = '0008' THEN '외출 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 23) + ' (' + SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 108),1,5) + '~' +   SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT2, 108),1,5) + ')'
					ELSE ''
               END AS DETAIL_02 , -- 상세내역02

			   CASE WHEN APRVL_KIND_CD = '0001' THEN '' 
				    WHEN APRVL_KIND_CD = '0002' THEN ''
			        WHEN APRVL_KIND_CD = '0003' THEN ''
			        WHEN APRVL_KIND_CD = '0004' THEN ''
			        WHEN APRVL_KIND_CD = '0005' THEN ''
			        WHEN APRVL_KIND_CD = '0006' THEN ''
			        WHEN APRVL_KIND_CD = '0007' THEN ''
			        WHEN APRVL_KIND_CD = '0008' THEN ''
					ELSE ''
               END AS DETAIL_03 ,  --상세내역 03

			   --A.OFFER_CN,  --신청내용
			   --A.UPD_DT,  --변경일시

			   A.APLNT_ID,
			   A.APLNT_NM
		  FROM (
 					SELECT A.CORP_NO,
						   A.APRVL_SNO,
						   A.APRVL_DT,
						   A.APPR_STUS_CD,
						   B.APRVL_DOC_ID,
						   B.APRVL_STUS_CD,
						   B.APRVL_KIND_CD,
						   B.OFFER_DT,
						   B.CMPL_DT,
						   B.APRVL_CMPL_SNO,
						   B.FINAL_APRVL_SNO,
						   B.APLNT_ID,
						   U1.USR_NM AS APLNT_NM,
						   U2.LATE_SKIPOFF_ABTI_OT_DATE,
						   U2.NML_WORK_RCNTN_YN,
						   U2.LATE_SKIPOFF_OT_DT,
						   U2.LATE_SKIPOFF_OT_DT2,

						   U2.REQUEST_DT,   --승인출근시각
						   U2.REQUEST_DT2,  --승인퇴근시각

						   U3.UPD_DATE_YC,
						   U3.FREE_CNT,
						   U4.USR_NM AS BZ_DEPUTY_NM,

						   U3.UPD_DATE_CHANGE,
						   U3.UPD_BF_WORK_CD,
						   U3.UPD_WORK_CD,

						   B.APLNT_CN ,
						   B.BZ_CN,
						   B.OFFER_CN,
						   B.UPD_DT
 
					  --FROM SX_GW0090 B
						 --  LEFT OUTER JOIN
						 --   ( SELECT * FROM SX_GW0100
					  --       WHERE 1=1
							-- AND   CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + CONVERT(VARCHAR, APRVL_SNO) IN 
							--              (SELECT  CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + MAX(CONVERT(VARCHAR, APRVL_SNO))
							--			   FROM    SX_GW0100
							--			   WHERE   CORP_NO = @P0
							--			   GROUP BY CORP_NO, APRVL_DOC_ID 
							--)


					  FROM SX_GW0100 A LEFT JOIN 
						   SX_GW0090 B
						   ON (1=1
							   AND B.CORP_NO = A.CORP_NO
							   AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
						      )

						   LEFT JOIN SX_GW0010 U1
						   ON(1=1
							AND U1.CORP_NO = B.CORP_NO
							AND U1.USR_ID = B.APLNT_ID
					         ) 

						   LEFT JOIN SX_GW0080 U2  --SX_지각조퇴기록
						   ON(1=1
							AND U2.CORP_NO = A.CORP_NO
							AND U2.APRVL_DOC_ID = A.APRVL_DOC_ID
					         ) 

							 LEFT JOIN (SELECT TA.CORP_NO
							                 , APRVL_DOC_ID
											-- , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차

											--, MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + TC.PLAN_WORK_CD + '-->' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차
	 										 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + 
											       --CASE WHEN ISNULL(TC.PLAN_WORK_CD, '') = '' THEN '(  -->  )'
											       CASE WHEN ISNULL(TC.PLAN_WORK_CD, '') = '' THEN '( -->' + UPD_WORK_CD + ')'
												        ELSE '(' + TC.PLAN_WORK_CD + '-->' + UPD_WORK_CD + ')'
													END ) AS UPD_DATE_YC --연차

											 --, CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY))  + '일' AS FREE_CNT --연차 일수
											 , SUBSTRING(ISNULL(CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY)), '0.00'),1,3)  + '일' AS FREE_CNT --연차 일수


											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)) AS UPD_DATE_CHANGE --근무변경
											 , MIN(UPD_BF_WORK_CD) AS UPD_BF_WORK_CD  --변경전 근무 코드
											 , MIN(UPD_WORK_CD) AS UPD_WORK_CD  --변경후 근무코드
							            FROM   SX_GW0110 TA LEFT JOIN SX_CO0070 TB ON TB.CORP_NO = TA.CORP_NO AND TB.WORK_CD = TA.UPD_WORK_CD
										                    LEFT JOIN SX_GW0050 TC ON TC.CORP_NO = TA.CORP_NO AND TC.USR_ID = TA.RGSTR_ID AND TC.WORK_PLAN_YYMMDD = TA.UPD_DATE
										GROUP BY TA.CORP_NO, TA.APRVL_DOC_ID
										) U3  
						   ON(1=1
							AND U3.CORP_NO = A.CORP_NO
							AND U3.APRVL_DOC_ID = A.APRVL_DOC_ID
					         ) 
							  
						   LEFT JOIN  SX_GW0010 U4
								ON(1=1
								AND U4.USR_ID = B.BZ_DEPUTY_ID )


		 WHERE 1=1
		   AND A.CORP_NO = @P0
		   AND (A.APPR_ID = @P1 OR A.RGSTR_ID = @P1)
		   AND (NULLIF(@P2, '') IS NULL OR A.APPR_STUS_CD = @P3)

		   AND (NULLIF(@P4, '') IS NULL OR B.APRVL_STUS_CD = @P5)
		   AND (NULLIF(@P6, '') IS NULL OR B.APRVL_KIND_CD = @P7)

		 ORDER BY
			   B.OFFER_DT DESC,
			   APRVL_SNO DESC
   
 
		 OFFSET ((@P8 - 1) * @P9) ROWS 
		  FETCH NEXT @P10 ROWS ONLY  
	    
		 ) A
		



	    --기존에 사용한 문장 BACKUP
			--SELECT
			--       A.APRVL_SNO,
			--       CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			--       A.APPR_STUS_CD,

			--       A.APRVL_DOC_ID,
			--       A.APRVL_STUS_CD,
			--       A.APRVL_KIND_CD,
			--       CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			--       CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,
			--       A.APRVL_CMPL_SNO,
			--       A.FINAL_APRVL_SNO,

			--       A.APLNT_ID,
			--       A.APLNT_NM
			--  FROM (
 
   
 
			--SELECT
			--       A.APRVL_SNO,
			--       A.APRVL_DT,
			--       A.APPR_STUS_CD,
			--       B.APRVL_DOC_ID,
			--       B.APRVL_STUS_CD,
			--       B.APRVL_KIND_CD,
			--       B.OFFER_DT,
			--       B.CMPL_DT,
			--       B.APRVL_CMPL_SNO,
			--       B.FINAL_APRVL_SNO,
			--       B.APLNT_ID,
			--       U1.USR_NM AS APLNT_NM
   
 
			--  FROM SX_GW0100 A
			--       JOIN SX_GW0090 B
			--       ON(1=1
			--        AND B.CORP_NO = A.CORP_NO
			--        AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
			--       )
			--       LEFT JOIN SX_GW0010 U1
			--       ON(1=1
			--        AND U1.CORP_NO = B.CORP_NO
			--        AND U1.USR_ID = B.APLNT_ID
			--       )
			-- WHERE 1=1
			--   AND A.CORP_NO = @P0
			--   AND A.APPR_ID = @P1
			--   AND (NULLIF(@P2, '''') IS NULL OR A.APPR_STUS_CD = @P3)

			--   AND (NULLIF(@P4, '''') IS NULL OR B.APRVL_STUS_CD = @P5)
			--   AND (NULLIF(@P6, '''') IS NULL OR B.APRVL_KIND_CD = @P7)
   
 
			-- ORDER BY
			--       B.OFFER_DT DESC,
			--       APRVL_SNO DESC
   
 
			--OFFSET ((@P8 - 1) * @P9) ROWS 
			--FETCH NEXT @P10 ROWS ONLY
   
			--       ) A
		


END --PROCEDURE END
GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_document_list_select_count]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 결재문서 결재 리스트 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_approval_document_list_select '1111','00001','','','','','','',1,20000,20000, '20070101', '20171231', ''  --1페이지
-- exec pr_skybridge_gw_approval_document_list_select '1111','00001','','','','','','',2,20,20, '20070101', '20171231', ''  --2페이지
-- exec pr_skybridge_gw_approval_document_list_select '1111','10212','','','','','','',1,20000,20000,'20070101', '20171231', ''  --1페이지


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_document_list_select_count]

		     @P0 VARCHAR(15)      --CORP_NO
		  ,  @P1 VARCHAR(10)      --APPR_ID
		  ,  @P2 VARCHAR(20)      --
		  ,  @P3 VARCHAR(4)      --APPR_STUS_CD
		  ,  @P4 VARCHAR(20)      --
		  ,  @P5 VARCHAR(4)      --APRVL_STUS_CD
		  ,  @P6 VARCHAR(20)      --
		  ,  @P7 VARCHAR(4)      --APRVL_KIND_CD
		  ,  @P8 INT            -- 조회 페이지 번호
		  ,  @P9 INT            -- 한행에 조회되는 행수
		  ,  @P10 INT           -- 한행에 조회되는 행수
		  ,	 @P11 VARCHAR(20)	-- 검색 시작일
		  ,	 @P12 VARCHAR(20)	-- 검색 종료일
		  ,  @P13 VARCHAR(4)	-- 진행상태
AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		-- 신규 작성
		SELECT
			  COUNT('A') AS TOT_CNT
		  FROM (
 					SELECT A.CORP_NO,
						   A.APRVL_SNO,
						   A.APRVL_DT,
						   A.APPR_STUS_CD,
						   B.APRVL_DOC_ID,
						   B.APRVL_STUS_CD,
						   B.APRVL_KIND_CD,
						   B.OFFER_DT,
						   B.CMPL_DT,
						   B.APRVL_CMPL_SNO,
						   B.FINAL_APRVL_SNO,
						   B.APLNT_ID,

						   U1.USR_NM AS APLNT_NM,

						   U2.LATE_SKIPOFF_ABTI_OT_DATE,
						   U2.NML_WORK_RCNTN_YN,
						   U2.LATE_SKIPOFF_OT_DT,
						   U2.REQUEST_DT,  --승인출근요청일시
						   U2.REQUEST_DT2, --승인퇴근요청일시

						   U3.UPD_DATE_YC,
						   U3.FREE_CNT,

						   U4.USR_NM AS BZ_DEPUTY_NM,

						   U3.UPD_DATE_CHANGE,
						   U3.UPD_BF_WORK_CD,
						   U3.UPD_WORK_CD,

						   B.APLNT_CN ,
						   B.BZ_CN,
						   B.OFFER_CN,
						   B.UPD_DT
 
					  FROM SX_GW0100 A LEFT JOIN 
						   SX_GW0090 B
						   ON (1=1
							   AND B.CORP_NO = A.CORP_NO
							   AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
						      )

						   LEFT JOIN SX_GW0010 U1
						   ON(1=1
							AND U1.CORP_NO = B.CORP_NO
							AND U1.USR_ID = B.APLNT_ID
					         ) 

						   LEFT JOIN SX_GW0080 U2  --SX_지각조퇴기록
						   ON(1=1
							AND U2.CORP_NO = A.CORP_NO
							AND U2.APRVL_DOC_ID = A.APRVL_DOC_ID
					         ) 

							 LEFT JOIN (SELECT TA.CORP_NO
							                 , APRVL_DOC_ID
											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차

											 , CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY))  + '일' AS FREE_CNT --연차 일수

											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)) AS UPD_DATE_CHANGE --근무변경
											 , MIN(UPD_BF_WORK_CD) AS UPD_BF_WORK_CD  --변경전 근무 코드
											 , MIN(UPD_WORK_CD) AS UPD_WORK_CD  --변경후 근무코드
							            FROM   SX_GW0110 TA LEFT JOIN SX_CO0070 TB ON TB.CORP_NO = TA.CORP_NO AND TB.WORK_CD = TA.UPD_WORK_CD
										GROUP BY TA.CORP_NO, TA.APRVL_DOC_ID
										) U3  
						   ON(1=1
							AND U3.CORP_NO = A.CORP_NO
							AND U3.APRVL_DOC_ID = A.APRVL_DOC_ID
					         ) 
							  
						   LEFT JOIN  SX_GW0010 U4
								ON(1=1
								AND U4.USR_ID = B.BZ_DEPUTY_ID )


		 WHERE 1=1
		   AND B.APRVL_DOC_ID IS NOT NULL
		   AND A.CORP_NO = @P0
		   AND A.APPR_ID = @P1
		   AND (NULLIF(@P2, '') IS NULL OR A.APPR_STUS_CD = @P3)

		   AND (NULLIF(@P4, '') IS NULL OR B.APRVL_STUS_CD = @P5)
		   AND (NULLIF(@P6, '') IS NULL OR B.APRVL_KIND_CD = @P7)

		   AND (CONVERT(VARCHAR, B.UPD_DT, 112) BETWEEN @P11 AND @P12)

		   /*	추가 조건 시작	*/
		   AND (
				  (NULLIF(@P13, '') IS NULL)
			   OR (NULLIF(@P13, '0001') IS NULL AND ISNULL(A.APPR_STUS_CD, '') = '0002')	-- 미결재
			   OR (NULLIF(@P13, '0002') IS NULL AND (A.APRVL_SNO = '1' AND B.APRVL_STUS_CD = '0004' AND A.APPR_STUS_CD = '0003' AND ISNULL(A.DOC_FLAG, '') != 'A'))	-- 미확인
			   OR (NULLIF(@P13, '0003') IS NULL AND (A.APRVL_SNO = '1' AND B.APRVL_STUS_CD = '0002' AND A.APPR_STUS_CD = '0003'))	-- 승인
			   
			   OR (NULLIF(@P13, '0004') IS NULL AND B.APRVL_STUS_CD = '0004' AND (
						(A.APRVL_SNO = '2' AND ISNULL(A.APPR_STUS_CD, '') = '0004' AND ISNULL((SELECT DOC_FLAG FROM SX_GW0100 WHERE CORP_NO = A.CORP_NO AND APRVL_SNO = '1' AND APRVL_DOC_ID = A.APRVL_DOC_ID), '') != 'A' )
						OR
						(A.APRVL_SNO = '1' AND A.DOC_FLAG = 'A' AND ISNULL(B.DOC_FLAG, '') = '')
						)
					)	--반려
			)
		   /*	추가 조건 끝	*/
 
  
	    
		 ) A
		

		


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_manager_list_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 결재문서 결재 리스트 조회(관리자용)
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_approval_manager_list_select '','','','','','',NULL,'1111','0003','0003','','','20161215','20170215',1,20000,20000
-- exec pr_skybridge_gw_approval_manager_list_select '','','','','','',NULL,'1111','','','','','20161215','20170215',1,20000,20000
-- exec pr_skybridge_gw_approval_manager_list_select '10429','10429','','','','',NULL,'1111','0003','0003','','','20161217','20170217',1,2000,2000

-- exec pr_skybridge_gw_approval_manager_list_select '지희','지희','','','','',NULL,'1111','0003','0003','','','20161217','20170217',1,2000,2000

-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_manager_list_select]

			@P0 nvarchar(4000)
			, @P1 nvarchar(4000)
			, @P2 nvarchar(4000)
			, @P3 nvarchar(4000)
			, @P4 nvarchar(4000)
			, @P5 nvarchar(4000)
			, @P6 varchar(8000)
			, @P7 nvarchar(4000)
			, @P8 nvarchar(4000)
			, @P9 nvarchar(4000)
			, @P10 nvarchar(4000)
			, @P11 nvarchar(4000)
			, @P12 nvarchar(4000)
			, @P13 nvarchar(4000)
			, @P14 int
			, @P15 int
			, @P16 int



AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		---- 신규 작성
		SELECT
			   A.APRVL_SNO,
			   CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			   A.APPR_STUS_CD,

			   A.APRVL_DOC_ID,
			   A.APRVL_STUS_CD,
			   A.APRVL_KIND_CD,
			   CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			   CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,


			   ISNULL(A.APRVL_CMPL_SNO,0) AS APRVL_CMPL_SNO,
			   ISNULL(A.FINAL_APRVL_SNO,0) AS FINAL_APRVL_SNO,

			 --  ■ 스카이브릿지 결재문서 결재 상세 내역 정리
				--- 1.시간외   : 신청내용, 업무내용, OT일자
				--- 2.지각     : 신청내용, 업무내용, 정상근무인정 요청, 지각일자(X), 지각일시 
				--- 3.조퇴     : 신청내용, 업무내용, 정상근무인정 요청, 조퇴일자(X), 조퇴일시 
				--- 4.결근     : 신청내용, 업무내용, 정상근무인정 요청, 결근일자
				--- 5.연차등   : 신청내용, 업무내용, 대행자,            연차 (날자, 연차등)
				--- 6.근무변경 : 신청내용, 업무내용, 대행자,            근무변경(근무일, 변경전, 변경후)
				--- 7.기안     : 신청내용, 업무내용

			   A.APLNT_CN , --신청자 내용
			   A.BZ_CN,     --업무내용

			   CASE WHEN APRVL_KIND_CD = '0001' THEN ''
				    WHEN APRVL_KIND_CD = '0002' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0003' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0004' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
			        WHEN APRVL_KIND_CD = '0005' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0006' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_01 ,  --상세내역 01
			   
			   CASE WHEN APRVL_KIND_CD = '0001' THEN 'OT : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 

				    --WHEN APRVL_KIND_CD = '0002' THEN '지각 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    --WHEN APRVL_KIND_CD = '0003' THEN '조퇴 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    --WHEN APRVL_KIND_CD = '0004' THEN '결근 : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 

				    WHEN APRVL_KIND_CD = '0002' THEN '지각 : ' + (CASE WHEN ISNULL(A.REQUEST_DT,'') = ''  THEN SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120), 1, 16) ELSE SUBSTRING(CONVERT(VARCHAR, A.REQUEST_DT, 120), 1, 16) END)
				    WHEN APRVL_KIND_CD = '0003' THEN '조퇴 : ' + (CASE WHEN ISNULL(A.REQUEST_DT2,'') = '' THEN SUBSTRING(CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120), 1, 16) ELSE SUBSTRING(CONVERT(VARCHAR, A.REQUEST_DT2, 120), 1, 16) END)
				    WHEN APRVL_KIND_CD = '0004' THEN '결근 : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) + ' ' + ISNULL(SUBSTRING(CONVERT(VARCHAR, REQUEST_DT, 108), 1, 5), '') + '~' + ISNULL(SUBSTRING(CONVERT(VARCHAR, REQUEST_DT2, 108), 1, 5), '')

			        WHEN APRVL_KIND_CD = '0005' THEN '연차 : ' + UPD_DATE_YC + ' ' + FREE_CNT
			        WHEN APRVL_KIND_CD = '0006' THEN '변경 : ' +  UPD_DATE_CHANGE + '(' + UPD_BF_WORK_CD + '-->' + UPD_WORK_CD + ')'
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_02 , -- 상세내역02

			   CASE WHEN APRVL_KIND_CD = '0001' THEN '' 
				    WHEN APRVL_KIND_CD = '0002' THEN ''
			        WHEN APRVL_KIND_CD = '0003' THEN ''
			        WHEN APRVL_KIND_CD = '0004' THEN ''
			        WHEN APRVL_KIND_CD = '0005' THEN ''
			        WHEN APRVL_KIND_CD = '0006' THEN ''
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_03 ,  --상세내역 03



			   --A.OFFER_CN,  --신청내용
			   --A.UPD_DT,  --변경일시

			   A.APLNT_ID,
			   A.APLNT_NM,
		       A.APLNT_TEAM_CD,
		       A.APLNT_DUTY_CD

		  FROM (
 					SELECT A.CORP_NO,
						   A.APRVL_SNO,
						   A.APRVL_DT,
						   A.APPR_STUS_CD,
						   B.APRVL_DOC_ID,
						   B.APRVL_STUS_CD,
						   B.APRVL_KIND_CD,
						   B.OFFER_DT,
						   B.CMPL_DT,
						   B.APRVL_CMPL_SNO,
						   B.FINAL_APRVL_SNO,

						   B.APLNT_ID,
						   U1.USR_NM AS APLNT_NM,
					       U1.TEAM_CD AS APLNT_TEAM_CD,
					       U1.DUTY_CD AS APLNT_DUTY_CD,

						   U2.LATE_SKIPOFF_ABTI_OT_DATE,
						   U2.NML_WORK_RCNTN_YN,
						   U2.LATE_SKIPOFF_OT_DT,

						   U2.REQUEST_DT,   --승인출근시각
						   U2.REQUEST_DT2,  --승인퇴근시각


						   U3.UPD_DATE_YC,
						   U3.FREE_CNT,
						   U4.USR_NM AS BZ_DEPUTY_NM,

						   U3.UPD_DATE_CHANGE,
						   U3.UPD_BF_WORK_CD,
						   U3.UPD_WORK_CD,

						   B.APLNT_CN ,
						   B.BZ_CN,
						   B.OFFER_CN,
						   B.UPD_DT
 
					  FROM SX_GW0090 B LEFT JOIN 
						   ( SELECT * FROM SX_GW0100
					         WHERE 1=1
							 AND   CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + CONVERT(VARCHAR, APRVL_SNO) IN 
							              (SELECT  CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + MAX(CONVERT(VARCHAR, APRVL_SNO))
										   FROM    SX_GW0100
										   WHERE   CORP_NO = @P7
										   GROUP BY CORP_NO, APRVL_DOC_ID )

					       ) A
						   
						   ON (1=1
							   AND B.CORP_NO = A.CORP_NO
							   AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
						      )

						   JOIN SX_GW0010 U1
						   ON(1=1
							AND U1.CORP_NO = B.CORP_NO
							AND U1.USR_ID = B.APLNT_ID
							--AND (NULLIF(@P0, '') IS NULL OR U1.USR_ID LIKE '%' + @P1 + '%')  --사용자ID로 조회
							AND (NULLIF(@P0, '') IS NULL OR U1.USR_NM LIKE '%' + @P1 + '%')  --사용자명으로 조회
							AND (NULLIF(@P2, '') IS NULL OR U1.TEAM_CD = @P3)
							AND (NULLIF(@P4, '') IS NULL OR U1.DUTY_CD = @P5)
							AND (@P6 = 'Y' OR NULLIF(U1.RETIREMENT_DATE, '') IS NULL) 
					         ) 

						   LEFT JOIN SX_GW0080 U2  --SX_지각조퇴기록
						   ON(1=1
							AND U2.CORP_NO = B.CORP_NO
							AND U2.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 

							 LEFT JOIN (SELECT TA.CORP_NO
							                 , APRVL_DOC_ID
											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차

	 										 , CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY))  + '일' AS FREE_CNT --연차 일수

											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)) AS UPD_DATE_CHANGE --근무변경
											 , MIN(UPD_BF_WORK_CD) AS UPD_BF_WORK_CD  --변경전 근무 코드
											 , MIN(UPD_WORK_CD) AS UPD_WORK_CD  --변경후 근무코드
							            FROM   SX_GW0110 TA LEFT JOIN SX_CO0070 TB ON TB.CORP_NO = TA.CORP_NO AND TB.WORK_CD = TA.UPD_WORK_CD
										GROUP BY TA.CORP_NO, TA.APRVL_DOC_ID



										) U3  
						   ON(1=1
							AND U3.CORP_NO = B.CORP_NO
							AND U3.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 
							  
						   LEFT JOIN  SX_GW0010 U4
								ON(1=1
								AND U4.USR_ID = B.BZ_DEPUTY_ID )


							
				WHERE 1=1
				AND B.CORP_NO = @P7
				AND (NULLIF(@P8, '') IS NULL OR B.APRVL_STUS_CD = @P9)
				AND (NULLIF(@P10, '') IS NULL OR B.APRVL_KIND_CD = @P11)
				AND CONVERT(VARCHAR, ISNULL(B.OFFER_DT, B.RGST_DT), 112) BETWEEN @P12 AND @P13

						 
				ORDER BY
					ISNULL(B.OFFER_DT, B.RGST_DT) DESC
						   
						 
			OFFSET ((@P14 - 1) * @P15) ROWS 
			FETCH NEXT @P16 ROWS ONLY
   
 
	    
		 ) A
		



	    --기존에 사용한 문장 BACKUP
			--SELECT
			--	   A.APRVL_DOC_ID,
			--	   A.APRVL_STUS_CD,
			--	   A.APRVL_KIND_CD,
			--	   CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			--	   CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,
			--	   A.APRVL_CMPL_SNO,
			--	   A.FINAL_APRVL_SNO,
			--	   A.APLNT_ID,
			--	   A.APLNT_NM,
			--	   A.APLNT_TEAM_CD,
			--	   A.APLNT_DUTY_CD
			--  FROM (
			--						SELECT
			--							   A.APRVL_DOC_ID,
			--							   A.APRVL_STUS_CD,
			--							   A.APRVL_KIND_CD,
			--							   A.OFFER_DT,
			--							   A.CMPL_DT,
			--							   A.APRVL_CMPL_SNO,
			--							   A.FINAL_APRVL_SNO,
			--							   A.APLNT_ID,
			--							   U.USR_NM AS APLNT_NM,
			--							   U.TEAM_CD AS APLNT_TEAM_CD,
			--							   U.DUTY_CD AS APLNT_DUTY_CD
						   
						 
			--						  FROM SX_GW0090 A
			--							   JOIN SX_GW0010 U
			--							   ON(1=1
			--								AND U.CORP_NO = A.CORP_NO
			--								AND U.USR_ID = A.APLNT_ID
			--								AND (NULLIF(@P0, '') IS NULL OR U.USR_ID = @P1)
			--								AND (NULLIF(@P2, '') IS NULL OR U.TEAM_CD = @P3)
			--								AND (NULLIF(@P4, '') IS NULL OR U.DUTY_CD = @P5)
			--								AND (@P6 = 'Y' OR NULLIF(U.RETIREMENT_DATE, '') IS NULL)
			--							   )
			--						 WHERE 1=1
			--						   AND A.CORP_NO = @P7
			--						   AND (NULLIF(@P8, '') IS NULL OR A.APRVL_STUS_CD = @P9)
			--						   AND (NULLIF(@P10, '') IS NULL OR A.APRVL_KIND_CD = @P11)
			--						   AND CONVERT(VARCHAR, ISNULL(A.OFFER_DT, A.RGST_DT), 112) BETWEEN @P12 AND @P13
						 
			--						 ORDER BY
			--							   ISNULL(A.OFFER_DT, A.RGST_DT) DESC
						   
						 
			--						OFFSET ((@P14 - 1) * @P15) ROWS 
			--						FETCH NEXT @P16 ROWS ONLY
   
			--	   ) A    


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_multi_delete]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-02-02
-- Create Description :	스카이브릿지 그룹웨어 결재문서 삭제- 다수건 삭제
-- Update date :
-- Update Description :

/*

DECLARE  @ParamTable ApprovalParamTableType

insert into @ParamTable values ('1111', 338, '00001')
insert into @ParamTable values ('1111', 341, '00001')
insert into @ParamTable values ('1111', 349, '00001')

exec pr_skybridge_gw_approval_multi_delete @ParamTable


*/


-- =======================================================================================

/* Create a table type. -- 테이블 타입 선언 
CREATE TYPE ApprovalParamTableType AS TABLE   
( 		     CORP_NO VARCHAR(15)      --회사번호CORP_NO
		  ,  APRVL_DOC_ID INT         --결재문서ID
		  ,  USR_ID VARCHAR(10)       --사용자ID
 );  
GO  
*/

CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_multi_delete]

		@ParamTable_1 ApprovalParamTableType READONLY  

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		--PARAMETER로 넘김 DATA를 FETCH하면서 담을 변수 지정
		DECLARE @CORP_NO VARCHAR(15)      --회사번호CORP_NO
		DECLARE @APRVL_DOC_ID INT         --결재문서ID
		DECLARE @USR_ID VARCHAR(10)       --사용자ID

	

		DECLARE Cursor_1 CURSOR FOR 
		 
			SELECT CORP_NO
				 , APRVL_DOC_ID
				 , USR_ID
			FROM   @ParamTable_1
			  
		OPEN Cursor_1;
		  
		FETCH NEXT FROM Cursor_1 INTO @CORP_NO, @APRVL_DOC_ID, @USR_ID;

		WHILE @@FETCH_STATUS = 0  --FETCH가 성공하면 
		
			BEGIN  

					exec pr_skybridge_gw_approval_delete @CORP_NO, @APRVL_DOC_ID, @USR_ID  

					FETCH NEXT FROM Cursor_1 INTO @CORP_NO, @APRVL_DOC_ID, @USR_ID;
					 
		    END;  
		
		CLOSE Cursor_1;  
		
		DEALLOCATE Cursor_1;  


	
END --PROCEDURE END


GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_request_list_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 결재 신청 리스트 조회 (개별)
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_approval_request_list_select '1111','00001','','','','','20161215','20170215',1,20000,20000  --1페이지
-- exec pr_skybridge_gw_approval_request_list_select '1111','00001','','','','','20160101','20170215',1,20000,20000 --1페이지




-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_request_list_select]

		     @P0 VARCHAR(4000)      --CORP_NO
		  ,  @P1 VARCHAR(4000)      --APPR_ID
		  ,  @P2 VARCHAR(4000)      --
		  ,  @P3 VARCHAR(4000)      --
		  ,  @P4 VARCHAR(4000)      --
		  ,  @P5 VARCHAR(4000)      --
		  ,  @P6 VARCHAR(4000)      --
		  ,  @P7 VARCHAR(4000)      --APRVL_KIND_CD
		  ,  @P8 INT            -- 조회 페이지 번호
		  ,  @P9 INT            -- 한행에 조회되는 행수
		  ,  @P10 INT           -- 한행에 조회되는 행수
		  ,  @P11 VARCHAR(4000)      --
		  ,  @P12 VARCHAR(4000)      --
		  ,  @P13 VARCHAR(4000)      --
		  ,  @P14 VARCHAR(4000)      --APRVL_KIND_CD
		  ,  @P15 VARCHAR(10)		-- PROCESS_CD

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  


	/*	0001 : 작성중	*/	--AND (B.APRVL_STUS_CD = '0001')
	/*	0002 : 미결재	*/	--AND (B.APRVL_STUS_CD = '0002')
	/*	0003 : 승인		*/	--AND (B.APRVL_STUS_CD = '0003' AND ISNULL(B.DOC_FLAG, '') != 'A')
	/*	0004 : 반려		*/	--AND (B.APRVL_STUS_CD = '0004' AND ISNULL(B.DOC_FLAG, '') != 'A' AND ISNULL(CH1.APPR_STUS_CD, '') = '0004' )
  

	-- 2017.07.12
	SELECT
			   A.APRVL_SNO,
			   CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			   A.APPR_STUS_CD,

			   A.APRVL_DOC_ID,
			   A.APRVL_STUS_CD,
			   A.APRVL_KIND_CD,
			   CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			   CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,


			   ISNULL(A.APRVL_CMPL_SNO,0) AS APRVL_CMPL_SNO,
			   ISNULL(A.FINAL_APRVL_SNO,0) AS FINAL_APRVL_SNO,

			 --  ■ 스카이브릿지 결재문서 결재 상세 내역 정리
				--- 1.시간외   : 신청내용, 업무내용, OT일자
				--- 2.지각     : 신청내용, 업무내용, 정상근무인정 요청, 지각일자(X), 지각일시 
				--- 3.조퇴     : 신청내용, 업무내용, 정상근무인정 요청, 조퇴일자(X), 조퇴일시 
				--- 4.결근     : 신청내용, 업무내용, 정상근무인정 요청, 결근일자
				--- 5.연차등   : 신청내용, 업무내용, 대행자,            연차 (날자, 연차등)
				--- 6.근무변경 : 신청내용, 업무내용, 대행자,            근무변경(근무일, 변경전, 변경후)
				--- 7.기안     : 신청내용, 업무내용

			   A.APLNT_CN , --신청자 내용
			   A.BZ_CN,     --업무내용


			   CASE WHEN APRVL_KIND_CD = '0001' THEN ''
				    WHEN APRVL_KIND_CD = '0002' THEN ''     --'인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0003' THEN CASE WHEN A.NML_WORK_RCNTN_YN = 'Y'THEN '조기퇴근' ELSE '' END     -- '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0004' THEN ''     --'인정 : ' + A.NML_WORK_RCNTN_YN
			        WHEN APRVL_KIND_CD = '0005' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0006' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_01 ,  --상세내역 01

			   
			   CASE WHEN APRVL_KIND_CD = '0001' THEN 'OT : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
				    WHEN APRVL_KIND_CD = '0002' THEN '지각 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    WHEN APRVL_KIND_CD = '0003' THEN '조퇴 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    WHEN APRVL_KIND_CD = '0004' THEN '결근 : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
			        WHEN APRVL_KIND_CD = '0005' THEN '연차 : ' + UPD_DATE_YC + ' ' + FREE_CNT
			        WHEN APRVL_KIND_CD = '0006' THEN '변경 : ' +  UPD_DATE_CHANGE + '(' + UPD_BF_WORK_CD + '-->' + UPD_WORK_CD + ')'
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_02 , -- 상세내역02

			   CASE WHEN APRVL_KIND_CD = '0001' THEN '' 
				    WHEN APRVL_KIND_CD = '0002' THEN ''
			        WHEN APRVL_KIND_CD = '0003' THEN ''
			        WHEN APRVL_KIND_CD = '0004' THEN ''
			        WHEN APRVL_KIND_CD = '0005' THEN ''
			        WHEN APRVL_KIND_CD = '0006' THEN ''
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_03 ,  --상세내역 03


			   --A.OFFER_CN,  --신청내용
			   --A.UPD_DT,  --변경일시

			   A.APLNT_ID,
			   A.APLNT_NM,
			   PROCESS_CD
		  FROM (
 					SELECT A.CORP_NO
						   , A.APRVL_SNO
						   , A.APRVL_DT
						   , A.APPR_STUS_CD
						   , A.RGST_DT
						   , B.APRVL_DOC_ID
						   , B.APRVL_STUS_CD
						   , B.APRVL_KIND_CD
						   , B.OFFER_DT
						   , B.CMPL_DT
						   , B.APRVL_CMPL_SNO
						   , B.FINAL_APRVL_SNO
						   , B.APLNT_ID
						   , U1.USR_NM AS APLNT_NM
						   , U2.LATE_SKIPOFF_ABTI_OT_DATE
						   , U2.NML_WORK_RCNTN_YN
						   , U2.LATE_SKIPOFF_OT_DT
						   , U3.UPD_DATE_YC
						   , U3.FREE_CNT
						   , U4.USR_NM AS BZ_DEPUTY_NM

						   , U3.UPD_DATE_CHANGE
						   , U3.UPD_BF_WORK_CD
						   , U3.UPD_WORK_CD

						   , B.APLNT_CN 
						   , B.BZ_CN
						   , B.OFFER_CN
						   , B.UPD_DT
						   
						   , CASE WHEN B.APRVL_STUS_CD = '0001' THEN '0001'
						   
								  WHEN B.APRVL_STUS_CD = '0002' THEN '0002'
								  WHEN B.APRVL_STUS_CD = '0003' AND ISNULL(B.DOC_FLAG, '') != 'A' THEN '0003'
								  --WHEN B.APRVL_STUS_CD = '0004' AND ISNULL(B.DOC_FLAG, '') != 'A' AND ISNULL(CH1.APPR_STUS_CD, '') = '0004' THEN '0004'
								  WHEN B.APRVL_STUS_CD = '0004' AND ISNULL(B.DOC_FLAG, '') != 'A' AND (ISNULL(CH1.APPR_STUS_CD, '') = '0004' OR ISNULL(CH1.DOC_FLAG, '') = 'A') THEN '0004'
								  ELSE ''
							 END AS PROCESS_CD
 
					  FROM SX_GW0090 B
						   LEFT OUTER JOIN
						    ( SELECT * FROM SX_GW0100
					         WHERE 1=1
							 AND   CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + CONVERT(VARCHAR, APRVL_SNO) IN 
							              (SELECT  CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + MAX(CONVERT(VARCHAR, APRVL_SNO))
										   FROM    SX_GW0100
										   WHERE   CORP_NO = @P0
										   GROUP BY CORP_NO, APRVL_DOC_ID )

					       ) A
						   ON (1=1
							   AND B.CORP_NO = A.CORP_NO
							   AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
						      )

						   LEFT JOIN SX_GW0010 U1
						   ON(1=1
							AND U1.CORP_NO = B.CORP_NO
							AND U1.USR_ID = B.APLNT_ID
					         ) 

						   LEFT JOIN SX_GW0080 U2  --SX_지각조퇴기록
						   ON(1=1
							AND U2.CORP_NO = B.CORP_NO
							AND U2.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 

							 LEFT JOIN (SELECT TA.CORP_NO
							                 , APRVL_DOC_ID
											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차

											 , CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY))  + '일' AS FREE_CNT --연차 일수

											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)) AS UPD_DATE_CHANGE --근무변경
											 , MIN(UPD_BF_WORK_CD) AS UPD_BF_WORK_CD  --변경전 근무 코드
											 , MIN(UPD_WORK_CD) AS UPD_WORK_CD  --변경후 근무코드
							            FROM   SX_GW0110 TA LEFT JOIN SX_CO0070 TB ON TB.CORP_NO = TA.CORP_NO AND TB.WORK_CD = TA.UPD_WORK_CD
										GROUP BY TA.CORP_NO, TA.APRVL_DOC_ID
										) U3  
						   ON(1=1
							AND U3.CORP_NO = B.CORP_NO
							AND U3.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 
							  
						   LEFT JOIN  SX_GW0010 U4
								ON(1=1
								AND U4.USR_ID = B.BZ_DEPUTY_ID )

						   LEFT OUTER JOIN SX_GW0100 CH1
								ON B.CORP_NO = CH1.CORP_NO AND B.APRVL_DOC_ID = CH1.APRVL_DOC_ID AND CH1.APRVL_SNO = 1


			WHERE 1=1
			AND B.CORP_NO = @P0
			AND B.APLNT_ID = @P1
			AND (NULLIF(@P2, '') IS NULL OR B.APRVL_STUS_CD = @P3)
			AND 
				(
					(NULLIF(@P4, '') IS NULL OR (LEN(@P11) = 4 AND B.APRVL_KIND_CD = @P5 ) )
					OR
					(NULLIF(@P12, '') IS NULL OR (LEN(@P13) > 4 AND B.APRVL_KIND_CD IN(/*'0001', */'0002', '0003', '0008', '0004') ) )
				)
			AND CONVERT(VARCHAR, ISNULL(B.OFFER_DT, B.RGST_DT), 112) BETWEEN @P6 AND @P7
					
			/*	   
			ORDER BY
				ISNULL(B.OFFER_DT, A.RGST_DT) DESC
   
 
			OFFSET ((@P8 - 1) * @P9) ROWS 
			FETCH NEXT @P10 ROWS ONLY							
			*/
	    
		 ) A
		 WHERE 1=1
			AND (NULLIF(@P15, '') IS NULL OR A.PROCESS_CD = @P15)

			ORDER BY
				ISNULL(A.OFFER_DT, A.RGST_DT) DESC
   
 
			OFFSET ((@P8 - 1) * @P9) ROWS 
			FETCH NEXT @P10 ROWS ONLY							


		/* 백업_v2
		SELECT
			   A.APRVL_SNO,
			   CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			   A.APPR_STUS_CD,

			   A.APRVL_DOC_ID,
			   A.APRVL_STUS_CD,
			   A.APRVL_KIND_CD,
			   CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			   CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,


			   ISNULL(A.APRVL_CMPL_SNO,0) AS APRVL_CMPL_SNO,
			   ISNULL(A.FINAL_APRVL_SNO,0) AS FINAL_APRVL_SNO,

			 --  ■ 스카이브릿지 결재문서 결재 상세 내역 정리
				--- 1.시간외   : 신청내용, 업무내용, OT일자
				--- 2.지각     : 신청내용, 업무내용, 정상근무인정 요청, 지각일자(X), 지각일시 
				--- 3.조퇴     : 신청내용, 업무내용, 정상근무인정 요청, 조퇴일자(X), 조퇴일시 
				--- 4.결근     : 신청내용, 업무내용, 정상근무인정 요청, 결근일자
				--- 5.연차등   : 신청내용, 업무내용, 대행자,            연차 (날자, 연차등)
				--- 6.근무변경 : 신청내용, 업무내용, 대행자,            근무변경(근무일, 변경전, 변경후)
				--- 7.기안     : 신청내용, 업무내용

			   A.APLNT_CN , --신청자 내용
			   A.BZ_CN,     --업무내용

			   CASE WHEN APRVL_KIND_CD = '0001' THEN ''
				    WHEN APRVL_KIND_CD = '0002' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0003' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0004' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
			        WHEN APRVL_KIND_CD = '0005' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0006' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_01 ,  --상세내역 01
			   
			   CASE WHEN APRVL_KIND_CD = '0001' THEN 'OT : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
				    WHEN APRVL_KIND_CD = '0002' THEN '지각 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    WHEN APRVL_KIND_CD = '0003' THEN '조퇴 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    WHEN APRVL_KIND_CD = '0004' THEN '결근 : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
			        WHEN APRVL_KIND_CD = '0005' THEN '연차 : ' + UPD_DATE_YC + ' ' + FREE_CNT
			        WHEN APRVL_KIND_CD = '0006' THEN '변경 : ' +  UPD_DATE_CHANGE + '(' + UPD_BF_WORK_CD + '-->' + UPD_WORK_CD + ')'
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_02 , -- 상세내역02

			   CASE WHEN APRVL_KIND_CD = '0001' THEN '' 
				    WHEN APRVL_KIND_CD = '0002' THEN ''
			        WHEN APRVL_KIND_CD = '0003' THEN ''
			        WHEN APRVL_KIND_CD = '0004' THEN ''
			        WHEN APRVL_KIND_CD = '0005' THEN ''
			        WHEN APRVL_KIND_CD = '0006' THEN ''
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_03 ,  --상세내역 03


			   --A.OFFER_CN,  --신청내용
			   --A.UPD_DT,  --변경일시

			   A.APLNT_ID,
			   A.APLNT_NM
		  FROM (
 					SELECT A.CORP_NO,
						   A.APRVL_SNO,
						   A.APRVL_DT,
						   A.APPR_STUS_CD,
						   B.APRVL_DOC_ID,
						   B.APRVL_STUS_CD,
						   B.APRVL_KIND_CD,
						   B.OFFER_DT,
						   B.CMPL_DT,
						   B.APRVL_CMPL_SNO,
						   B.FINAL_APRVL_SNO,
						   B.APLNT_ID,
						   U1.USR_NM AS APLNT_NM,
						   U2.LATE_SKIPOFF_ABTI_OT_DATE,
						   U2.NML_WORK_RCNTN_YN,
						   U2.LATE_SKIPOFF_OT_DT,
						   U3.UPD_DATE_YC,
						   U3.FREE_CNT,
						   U4.USR_NM AS BZ_DEPUTY_NM,

						   U3.UPD_DATE_CHANGE,
						   U3.UPD_BF_WORK_CD,
						   U3.UPD_WORK_CD,

						   B.APLNT_CN ,
						   B.BZ_CN,
						   B.OFFER_CN,
						   B.UPD_DT
 
					  FROM SX_GW0090 B
						   LEFT OUTER JOIN
						    ( SELECT * FROM SX_GW0100
					         WHERE 1=1
							 AND   CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + CONVERT(VARCHAR, APRVL_SNO) IN 
							              (SELECT  CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + MAX(CONVERT(VARCHAR, APRVL_SNO))
										   FROM    SX_GW0100
										   WHERE   CORP_NO = @P0
										   GROUP BY CORP_NO, APRVL_DOC_ID )

					       ) A
						   ON (1=1
							   AND B.CORP_NO = A.CORP_NO
							   AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
						      )

						   LEFT JOIN SX_GW0010 U1
						   ON(1=1
							AND U1.CORP_NO = B.CORP_NO
							AND U1.USR_ID = B.APLNT_ID
					         ) 

						   LEFT JOIN SX_GW0080 U2  --SX_지각조퇴기록
						   ON(1=1
							AND U2.CORP_NO = B.CORP_NO
							AND U2.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 

							 LEFT JOIN (SELECT TA.CORP_NO
							                 , APRVL_DOC_ID
											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차

											 , CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY))  + '일' AS FREE_CNT --연차 일수

											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)) AS UPD_DATE_CHANGE --근무변경
											 , MIN(UPD_BF_WORK_CD) AS UPD_BF_WORK_CD  --변경전 근무 코드
											 , MIN(UPD_WORK_CD) AS UPD_WORK_CD  --변경후 근무코드
							            FROM   SX_GW0110 TA LEFT JOIN SX_CO0070 TB ON TB.CORP_NO = TA.CORP_NO AND TB.WORK_CD = TA.UPD_WORK_CD
										GROUP BY TA.CORP_NO, TA.APRVL_DOC_ID
										) U3  
						   ON(1=1
							AND U3.CORP_NO = B.CORP_NO
							AND U3.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 
							  
						   LEFT JOIN  SX_GW0010 U4
								ON(1=1
								AND U4.USR_ID = B.BZ_DEPUTY_ID )


			WHERE 1=1
			AND B.CORP_NO = @P0
			AND B.APLNT_ID = @P1
			AND (NULLIF(@P2, '') IS NULL OR B.APRVL_STUS_CD = @P3)
			AND 
				(
					(NULLIF(@P4, '') IS NULL OR (LEN(@P11) = 4 AND B.APRVL_KIND_CD = @P5 ) )
					OR
					(NULLIF(@P12, '') IS NULL OR (LEN(@P13) > 4 AND B.APRVL_KIND_CD IN('0002', '0003', '0008', '0004') ) )
				)
			AND CONVERT(VARCHAR, ISNULL(B.OFFER_DT, B.RGST_DT), 112) BETWEEN @P6 AND @P7
						   
			ORDER BY
				ISNULL(B.OFFER_DT, A.RGST_DT) DESC
   
 
			OFFSET ((@P8 - 1) * @P9) ROWS 
			FETCH NEXT @P10 ROWS ONLY							

	    
		 ) A
		*/



	    --기존에 사용한 문장 BACKUP
				--declare @p1 int
				--set @p1=1492
				--exec sp_prepexec @p1 output

				--@P0 nvarchar(4000)
				--,@P1 nvarchar(4000)
				--,@P2 nvarchar(4000)
				--,@P3 nvarchar(4000)
				--,@P4 nvarchar(4000)
				--,@P5 nvarchar(4000)
				--,@P6 nvarchar(4000)
				--,@P7 nvarchar(4000)
				--,@P8 int
				--,@P9 int
				--,@P10 int

				--SELECT
				--       A.APRVL_DOC_ID,
				--       A.APRVL_STUS_CD,
				--       A.APRVL_KIND_CD,
				--       CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
				--       CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,
				--       A.APRVL_CMPL_SNO,
				--       A.FINAL_APRVL_SNO,
				--       (SELECT TOP 1 USR_NM FROM SX_GW0010 WHERE USR_ID = A.APLNT_ID) AS APLNT_NM
				--  FROM (
 
				--						SELECT
				--						       A.APRVL_DOC_ID,
				--						       A.APRVL_STUS_CD,
				--						       A.APRVL_KIND_CD,
				--						       A.OFFER_DT,
				--						       A.CMPL_DT,
				--						       A.APRVL_CMPL_SNO,
				--						       A.FINAL_APRVL_SNO,
				--						       A.APLNT_ID
						   
						 
				--						  FROM SX_GW0090 A
				--						 WHERE 1=1
				--						   AND A.CORP_NO = @P0
				--						   AND A.APLNT_ID = @P1
				--						   AND (NULLIF(@P2, '') IS NULL OR A.APRVL_STUS_CD = @P3)
				--						   AND (NULLIF(@P4, '') IS NULL OR A.APRVL_KIND_CD = @P5)
				--						   AND CONVERT(VARCHAR, ISNULL(A.OFFER_DT, A.RGST_DT), 112) BETWEEN @P6 AND @P7
						   
						 
				--						 ORDER BY
				--						       ISNULL(A.OFFER_DT, A.RGST_DT) DESC
   
 
				--OFFSET ((@P8 - 1) * @P9) ROWS 
				--FETCH NEXT @P10 ROWS ONLY
   
				--       ) A           
       
       
				--'1111','00001','','','','','20161215','20170215',1,20,20


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_approval_request_list_select_count]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		Byun
-- Create date : 2017-07-12
-- Create Description :	스카이브릿지 그룹웨어 결재 신청 리스트 개수 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_approval_request_list_select '1111','00001','','','','','20161215','20170215',1,20000,20000  --1페이지
-- exec pr_skybridge_gw_approval_request_list_select '1111','00001','','','','','20160101','20170215',1,20000,20000 --1페이지




-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_approval_request_list_select_count]

		     @P0 VARCHAR(4000)      --CORP_NO
		  ,  @P1 VARCHAR(4000)      --APPR_ID
		  ,  @P2 VARCHAR(4000)      --
		  ,  @P3 VARCHAR(4000)      --
		  ,  @P4 VARCHAR(4000)      --
		  ,  @P5 VARCHAR(4000)      --
		  ,  @P6 VARCHAR(4000)      --
		  ,  @P7 VARCHAR(4000)      --APRVL_KIND_CD
		  ,  @P8 INT            -- 조회 페이지 번호
		  ,  @P9 INT            -- 한행에 조회되는 행수
		  ,  @P10 INT           -- 한행에 조회되는 행수
		  ,  @P11 VARCHAR(4000)      --
		  ,  @P12 VARCHAR(4000)      --
		  ,  @P13 VARCHAR(4000)      --
		  ,  @P14 VARCHAR(4000)      --APRVL_KIND_CD
		  ,  @P15 VARCHAR(10)		-- PROCESS_CD

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  


	/*	0001 : 작성중	*/	--AND (B.APRVL_STUS_CD = '0001')
	/*	0002 : 미결재	*/	--AND (B.APRVL_STUS_CD = '0002')
	/*	0003 : 승인		*/	--AND (B.APRVL_STUS_CD = '0003' AND ISNULL(B.DOC_FLAG, '') != 'A')
	/*	0004 : 반려		*/	--AND (B.APRVL_STUS_CD = '0004' AND ISNULL(B.DOC_FLAG, '') != 'A' AND ISNULL(CH1.DOC_FLAG, '') = 'A' )
  

	-- 2017.07.12
	SELECT COUNT('A') AS TOT_CNT 
	FROM(
	SELECT
			   A.APRVL_SNO,
			   CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			   A.APPR_STUS_CD,

			   A.APRVL_DOC_ID,
			   A.APRVL_STUS_CD,
			   A.APRVL_KIND_CD,
			   CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			   CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,


			   ISNULL(A.APRVL_CMPL_SNO,0) AS APRVL_CMPL_SNO,
			   ISNULL(A.FINAL_APRVL_SNO,0) AS FINAL_APRVL_SNO,

			 --  ■ 스카이브릿지 결재문서 결재 상세 내역 정리
				--- 1.시간외   : 신청내용, 업무내용, OT일자
				--- 2.지각     : 신청내용, 업무내용, 정상근무인정 요청, 지각일자(X), 지각일시 
				--- 3.조퇴     : 신청내용, 업무내용, 정상근무인정 요청, 조퇴일자(X), 조퇴일시 
				--- 4.결근     : 신청내용, 업무내용, 정상근무인정 요청, 결근일자
				--- 5.연차등   : 신청내용, 업무내용, 대행자,            연차 (날자, 연차등)
				--- 6.근무변경 : 신청내용, 업무내용, 대행자,            근무변경(근무일, 변경전, 변경후)
				--- 7.기안     : 신청내용, 업무내용

			   A.APLNT_CN , --신청자 내용
			   A.BZ_CN,     --업무내용

			   CASE WHEN APRVL_KIND_CD = '0001' THEN ''
				    WHEN APRVL_KIND_CD = '0002' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0003' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0004' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
			        WHEN APRVL_KIND_CD = '0005' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0006' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_01 ,  --상세내역 01
			   
			   CASE WHEN APRVL_KIND_CD = '0001' THEN 'OT : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
				    WHEN APRVL_KIND_CD = '0002' THEN '지각 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    WHEN APRVL_KIND_CD = '0003' THEN '조퇴 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    WHEN APRVL_KIND_CD = '0004' THEN '결근 : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
			        WHEN APRVL_KIND_CD = '0005' THEN '연차 : ' + UPD_DATE_YC + ' ' + FREE_CNT
			        WHEN APRVL_KIND_CD = '0006' THEN '변경 : ' +  UPD_DATE_CHANGE + '(' + UPD_BF_WORK_CD + '-->' + UPD_WORK_CD + ')'
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_02 , -- 상세내역02

			   CASE WHEN APRVL_KIND_CD = '0001' THEN '' 
				    WHEN APRVL_KIND_CD = '0002' THEN ''
			        WHEN APRVL_KIND_CD = '0003' THEN ''
			        WHEN APRVL_KIND_CD = '0004' THEN ''
			        WHEN APRVL_KIND_CD = '0005' THEN ''
			        WHEN APRVL_KIND_CD = '0006' THEN ''
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_03 ,  --상세내역 03


			   --A.OFFER_CN,  --신청내용
			   --A.UPD_DT,  --변경일시

			   A.APLNT_ID,
			   A.APLNT_NM,
			   PROCESS_CD
		  FROM (
 					SELECT A.CORP_NO
						   , A.APRVL_SNO
						   , A.APRVL_DT
						   , A.APPR_STUS_CD
						   , B.APRVL_DOC_ID
						   , B.APRVL_STUS_CD
						   , B.APRVL_KIND_CD
						   , B.OFFER_DT
						   , B.CMPL_DT
						   , B.APRVL_CMPL_SNO
						   , B.FINAL_APRVL_SNO
						   , B.APLNT_ID
						   , U1.USR_NM AS APLNT_NM
						   , U2.LATE_SKIPOFF_ABTI_OT_DATE
						   , U2.NML_WORK_RCNTN_YN
						   , U2.LATE_SKIPOFF_OT_DT
						   , U3.UPD_DATE_YC
						   , U3.FREE_CNT
						   , U4.USR_NM AS BZ_DEPUTY_NM

						   , U3.UPD_DATE_CHANGE
						   , U3.UPD_BF_WORK_CD
						   , U3.UPD_WORK_CD

						   , B.APLNT_CN 
						   , B.BZ_CN
						   , B.OFFER_CN
						   , B.UPD_DT

						   , CASE WHEN B.APRVL_STUS_CD = '0001' THEN '0001'
						   
								  WHEN B.APRVL_STUS_CD = '0002' THEN '0002'
								  WHEN B.APRVL_STUS_CD = '0003' AND ISNULL(B.DOC_FLAG, '') != 'A' THEN '0003'
								  WHEN B.APRVL_STUS_CD = '0004' AND ISNULL(B.DOC_FLAG, '') != 'A' AND ISNULL(CH1.DOC_FLAG, '') = 'A' THEN '0004'
								  ELSE ''
							 END AS PROCESS_CD
 
					  FROM SX_GW0090 B
						   LEFT OUTER JOIN
						    ( SELECT * FROM SX_GW0100
					         WHERE 1=1
							 AND   CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + CONVERT(VARCHAR, APRVL_SNO) IN 
							              (SELECT  CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + MAX(CONVERT(VARCHAR, APRVL_SNO))
										   FROM    SX_GW0100
										   WHERE   CORP_NO = @P0
										   GROUP BY CORP_NO, APRVL_DOC_ID )

					       ) A
						   ON (1=1
							   AND B.CORP_NO = A.CORP_NO
							   AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
						      )

						   LEFT JOIN SX_GW0010 U1
						   ON(1=1
							AND U1.CORP_NO = B.CORP_NO
							AND U1.USR_ID = B.APLNT_ID
					         ) 

						   LEFT JOIN SX_GW0080 U2  --SX_지각조퇴기록
						   ON(1=1
							AND U2.CORP_NO = B.CORP_NO
							AND U2.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 

							 LEFT JOIN (SELECT TA.CORP_NO
							                 , APRVL_DOC_ID
											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차

											 , CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY))  + '일' AS FREE_CNT --연차 일수

											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)) AS UPD_DATE_CHANGE --근무변경
											 , MIN(UPD_BF_WORK_CD) AS UPD_BF_WORK_CD  --변경전 근무 코드
											 , MIN(UPD_WORK_CD) AS UPD_WORK_CD  --변경후 근무코드
							            FROM   SX_GW0110 TA LEFT JOIN SX_CO0070 TB ON TB.CORP_NO = TA.CORP_NO AND TB.WORK_CD = TA.UPD_WORK_CD
										GROUP BY TA.CORP_NO, TA.APRVL_DOC_ID
										) U3  
						   ON(1=1
							AND U3.CORP_NO = B.CORP_NO
							AND U3.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 
							  
						   LEFT JOIN  SX_GW0010 U4
								ON(1=1
								AND U4.USR_ID = B.BZ_DEPUTY_ID )

						   LEFT OUTER JOIN SX_GW0100 CH1
								ON B.CORP_NO = CH1.CORP_NO AND B.APRVL_DOC_ID = CH1.APRVL_DOC_ID AND CH1.APRVL_SNO = 1


			WHERE 1=1
			AND B.CORP_NO = @P0
			AND B.APLNT_ID = @P1
			AND (NULLIF(@P2, '') IS NULL OR B.APRVL_STUS_CD = @P3)
			AND 
				(
					(NULLIF(@P4, '') IS NULL OR (LEN(@P11) = 4 AND B.APRVL_KIND_CD = @P5 ) )
					OR
					(NULLIF(@P12, '') IS NULL OR (LEN(@P13) > 4 AND B.APRVL_KIND_CD IN(/*'0001', */'0002', '0003', '0008', '0004') ) )
				)
			AND CONVERT(VARCHAR, ISNULL(B.OFFER_DT, B.RGST_DT), 112) BETWEEN @P6 AND @P7
	    
		 ) A
		 WHERE 1=1
			AND (NULLIF(@P15, '') IS NULL OR A.PROCESS_CD = @P15)
		) AS  TOT


		/* 백업_v2
		SELECT
			   A.APRVL_SNO,
			   CONVERT(VARCHAR, A.APRVL_DT, 120) AS APRVL_DT,
			   A.APPR_STUS_CD,

			   A.APRVL_DOC_ID,
			   A.APRVL_STUS_CD,
			   A.APRVL_KIND_CD,
			   CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
			   CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,


			   ISNULL(A.APRVL_CMPL_SNO,0) AS APRVL_CMPL_SNO,
			   ISNULL(A.FINAL_APRVL_SNO,0) AS FINAL_APRVL_SNO,

			 --  ■ 스카이브릿지 결재문서 결재 상세 내역 정리
				--- 1.시간외   : 신청내용, 업무내용, OT일자
				--- 2.지각     : 신청내용, 업무내용, 정상근무인정 요청, 지각일자(X), 지각일시 
				--- 3.조퇴     : 신청내용, 업무내용, 정상근무인정 요청, 조퇴일자(X), 조퇴일시 
				--- 4.결근     : 신청내용, 업무내용, 정상근무인정 요청, 결근일자
				--- 5.연차등   : 신청내용, 업무내용, 대행자,            연차 (날자, 연차등)
				--- 6.근무변경 : 신청내용, 업무내용, 대행자,            근무변경(근무일, 변경전, 변경후)
				--- 7.기안     : 신청내용, 업무내용

			   A.APLNT_CN , --신청자 내용
			   A.BZ_CN,     --업무내용

			   CASE WHEN APRVL_KIND_CD = '0001' THEN ''
				    WHEN APRVL_KIND_CD = '0002' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0003' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
				    WHEN APRVL_KIND_CD = '0004' THEN '인정 : ' + A.NML_WORK_RCNTN_YN
			        WHEN APRVL_KIND_CD = '0005' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0006' THEN '대행자 : ' + A.BZ_DEPUTY_NM
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_01 ,  --상세내역 01
			   
			   CASE WHEN APRVL_KIND_CD = '0001' THEN 'OT : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
				    WHEN APRVL_KIND_CD = '0002' THEN '지각 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    WHEN APRVL_KIND_CD = '0003' THEN '조퇴 : ' + CONVERT(VARCHAR, A.LATE_SKIPOFF_OT_DT, 120)
				    WHEN APRVL_KIND_CD = '0004' THEN '결근 : ' + CONVERT(VARCHAR, CONVERT(DATETIME, A.LATE_SKIPOFF_ABTI_OT_DATE), 23) 
			        WHEN APRVL_KIND_CD = '0005' THEN '연차 : ' + UPD_DATE_YC + ' ' + FREE_CNT
			        WHEN APRVL_KIND_CD = '0006' THEN '변경 : ' +  UPD_DATE_CHANGE + '(' + UPD_BF_WORK_CD + '-->' + UPD_WORK_CD + ')'
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_02 , -- 상세내역02

			   CASE WHEN APRVL_KIND_CD = '0001' THEN '' 
				    WHEN APRVL_KIND_CD = '0002' THEN ''
			        WHEN APRVL_KIND_CD = '0003' THEN ''
			        WHEN APRVL_KIND_CD = '0004' THEN ''
			        WHEN APRVL_KIND_CD = '0005' THEN ''
			        WHEN APRVL_KIND_CD = '0006' THEN ''
			        WHEN APRVL_KIND_CD = '0007' THEN ''
					ELSE ''
               END AS DETAIL_03 ,  --상세내역 03


			   --A.OFFER_CN,  --신청내용
			   --A.UPD_DT,  --변경일시

			   A.APLNT_ID,
			   A.APLNT_NM
		  FROM (
 					SELECT A.CORP_NO,
						   A.APRVL_SNO,
						   A.APRVL_DT,
						   A.APPR_STUS_CD,
						   B.APRVL_DOC_ID,
						   B.APRVL_STUS_CD,
						   B.APRVL_KIND_CD,
						   B.OFFER_DT,
						   B.CMPL_DT,
						   B.APRVL_CMPL_SNO,
						   B.FINAL_APRVL_SNO,
						   B.APLNT_ID,
						   U1.USR_NM AS APLNT_NM,
						   U2.LATE_SKIPOFF_ABTI_OT_DATE,
						   U2.NML_WORK_RCNTN_YN,
						   U2.LATE_SKIPOFF_OT_DT,
						   U3.UPD_DATE_YC,
						   U3.FREE_CNT,
						   U4.USR_NM AS BZ_DEPUTY_NM,

						   U3.UPD_DATE_CHANGE,
						   U3.UPD_BF_WORK_CD,
						   U3.UPD_WORK_CD,

						   B.APLNT_CN ,
						   B.BZ_CN,
						   B.OFFER_CN,
						   B.UPD_DT
 
					  FROM SX_GW0090 B
						   LEFT OUTER JOIN
						    ( SELECT * FROM SX_GW0100
					         WHERE 1=1
							 AND   CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + CONVERT(VARCHAR, APRVL_SNO) IN 
							              (SELECT  CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID)  + '|' + MAX(CONVERT(VARCHAR, APRVL_SNO))
										   FROM    SX_GW0100
										   WHERE   CORP_NO = @P0
										   GROUP BY CORP_NO, APRVL_DOC_ID )

					       ) A
						   ON (1=1
							   AND B.CORP_NO = A.CORP_NO
							   AND B.APRVL_DOC_ID = A.APRVL_DOC_ID
						      )

						   LEFT JOIN SX_GW0010 U1
						   ON(1=1
							AND U1.CORP_NO = B.CORP_NO
							AND U1.USR_ID = B.APLNT_ID
					         ) 

						   LEFT JOIN SX_GW0080 U2  --SX_지각조퇴기록
						   ON(1=1
							AND U2.CORP_NO = B.CORP_NO
							AND U2.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 

							 LEFT JOIN (SELECT TA.CORP_NO
							                 , APRVL_DOC_ID
											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)  + '(' + UPD_WORK_CD + ')')  AS UPD_DATE_YC --연차

											 , CONVERT (VARCHAR, SUM(TB.YYCT_DEDU_DAY))  + '일' AS FREE_CNT --연차 일수

											 , MIN(CONVERT(VARCHAR, CONVERT(DATETIME, UPD_DATE), 23)) AS UPD_DATE_CHANGE --근무변경
											 , MIN(UPD_BF_WORK_CD) AS UPD_BF_WORK_CD  --변경전 근무 코드
											 , MIN(UPD_WORK_CD) AS UPD_WORK_CD  --변경후 근무코드
							            FROM   SX_GW0110 TA LEFT JOIN SX_CO0070 TB ON TB.CORP_NO = TA.CORP_NO AND TB.WORK_CD = TA.UPD_WORK_CD
										GROUP BY TA.CORP_NO, TA.APRVL_DOC_ID
										) U3  
						   ON(1=1
							AND U3.CORP_NO = B.CORP_NO
							AND U3.APRVL_DOC_ID = B.APRVL_DOC_ID
					         ) 
							  
						   LEFT JOIN  SX_GW0010 U4
								ON(1=1
								AND U4.USR_ID = B.BZ_DEPUTY_ID )


			WHERE 1=1
			AND B.CORP_NO = @P0
			AND B.APLNT_ID = @P1
			AND (NULLIF(@P2, '') IS NULL OR B.APRVL_STUS_CD = @P3)
			AND 
				(
					(NULLIF(@P4, '') IS NULL OR (LEN(@P11) = 4 AND B.APRVL_KIND_CD = @P5 ) )
					OR
					(NULLIF(@P12, '') IS NULL OR (LEN(@P13) > 4 AND B.APRVL_KIND_CD IN('0002', '0003', '0008', '0004') ) )
				)
			AND CONVERT(VARCHAR, ISNULL(B.OFFER_DT, B.RGST_DT), 112) BETWEEN @P6 AND @P7
						   
			ORDER BY
				ISNULL(B.OFFER_DT, A.RGST_DT) DESC
   
 
			OFFSET ((@P8 - 1) * @P9) ROWS 
			FETCH NEXT @P10 ROWS ONLY							

	    
		 ) A
		*/



	    --기존에 사용한 문장 BACKUP
				--declare @p1 int
				--set @p1=1492
				--exec sp_prepexec @p1 output

				--@P0 nvarchar(4000)
				--,@P1 nvarchar(4000)
				--,@P2 nvarchar(4000)
				--,@P3 nvarchar(4000)
				--,@P4 nvarchar(4000)
				--,@P5 nvarchar(4000)
				--,@P6 nvarchar(4000)
				--,@P7 nvarchar(4000)
				--,@P8 int
				--,@P9 int
				--,@P10 int

				--SELECT
				--       A.APRVL_DOC_ID,
				--       A.APRVL_STUS_CD,
				--       A.APRVL_KIND_CD,
				--       CONVERT(VARCHAR, A.OFFER_DT, 120) AS OFFER_DT,
				--       CONVERT(VARCHAR, A.CMPL_DT, 120) AS CMPL_DT,
				--       A.APRVL_CMPL_SNO,
				--       A.FINAL_APRVL_SNO,
				--       (SELECT TOP 1 USR_NM FROM SX_GW0010 WHERE USR_ID = A.APLNT_ID) AS APLNT_NM
				--  FROM (
 
				--						SELECT
				--						       A.APRVL_DOC_ID,
				--						       A.APRVL_STUS_CD,
				--						       A.APRVL_KIND_CD,
				--						       A.OFFER_DT,
				--						       A.CMPL_DT,
				--						       A.APRVL_CMPL_SNO,
				--						       A.FINAL_APRVL_SNO,
				--						       A.APLNT_ID
						   
						 
				--						  FROM SX_GW0090 A
				--						 WHERE 1=1
				--						   AND A.CORP_NO = @P0
				--						   AND A.APLNT_ID = @P1
				--						   AND (NULLIF(@P2, '') IS NULL OR A.APRVL_STUS_CD = @P3)
				--						   AND (NULLIF(@P4, '') IS NULL OR A.APRVL_KIND_CD = @P5)
				--						   AND CONVERT(VARCHAR, ISNULL(A.OFFER_DT, A.RGST_DT), 112) BETWEEN @P6 AND @P7
						   
						 
				--						 ORDER BY
				--						       ISNULL(A.OFFER_DT, A.RGST_DT) DESC
   
 
				--OFFSET ((@P8 - 1) * @P9) ROWS 
				--FETCH NEXT @P10 ROWS ONLY
   
				--       ) A           
       
       
				--'1111','00001','','','','','20161215','20170215',1,20,20


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_holiday_detail_list_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-08-11
-- Create Description :	스카이브릿지 그룹웨어 연차등상세내역 리스트 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '', '', '', ''
-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '강충우', '', '', ''
-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '', '16', '', ''
-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '', '', 'Y', ''

-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '', '', '', 'USR_NM'   --정렬순서 : (이름), 직책, 업무별, 팀별, 업로드순

-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '', '', '', 'DUTY_CD'  --정렬순서 : 이름, (직책), 업무별, 팀별, 업로드순

-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '', '', '', 'BZ_CD'    --정렬순서 : 이름, 직책, (업무별), 팀별, 업로드순

-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '', '', '', 'TEAM_CD'  --정렬순서 : 이름, 직책, 업무별, (팀별), 업로드순

-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2017', '', '', '', 'SORT_ODR' --정렬순서 : 이름, 직책, 업무별, 팀별, (업로드순)

-- exec pr_skybridge_gw_holiday_detail_list_select '1111', '2018', '정진구', '', '', 'SORT_ODR' --정렬순서 : 이름, 직책, 업무별, 팀별, (업로드순)

-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_holiday_detail_list_select]

	     
		  @CORP_NO    VARCHAR(15)  --회사코드
        , @YYVCT_YY   VARCHAR(20)  --조회년도
        , @USR_NM     VARCHAR(50)  --이름
        , @TEAM_CD    VARCHAR(50)  --팀코드
		, @RETIRE_YN  VARCHAR(10)  --퇴사여부
		, @ORDER_TYPE VARCHAR(10)  --정렬방법


AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  
	
			SELECT A.USR_ID,
				   A.USR_ID AS ORDER_2,
				   A.USR_NM,
				   A.BZ_CD,
				   A.TEAM_CD,
				   A.DUTY_CD,
				   @YYVCT_YY AS YYVCT_YY,

				   ISNULL(B.YYVCT_CNT,0)  AS YYVCT_CNT,   --(A)총연차
				   ISNULL(COM_CNT,0)      AS COM_CNT,     --(B)승인연차
				   ISNULL(NONCOM_CNT,0)   AS NONCOM_CNT,  --(C)비승인연차
				   ISNULL(ABSENT_CNT,0)   AS ABSENT_CNT,  --(D)출퇴근미기록
				   ISNULL(B.YYVCT_CNT,0) - ISNULL(COM_CNT,0) 
				                         - ISNULL(NONCOM_CNT,0) 
							             - ISNULL(ABSENT_CNT,0)  AS REMAIN_CNT,  --(S)잔여연차 S=A-B-C-D

				   B.SORT_ODR,
				   0 AS ORI

			  FROM SX_GW0010 A
  					 LEFT JOIN SX_GW0060 B
  					 ON(1=1
					AND B.CORP_NO = A.CORP_NO
  		 			AND B.USR_ID = A.USR_ID
  		 			AND B.YYVCT_YY = @YYVCT_YY )

				   --승인 연차 일수
				   LEFT OUTER JOIN (
										SELECT A.CORP_NO,
											   A.USR_ID,

											   SUM(B.YYCT_DEDU_DAY) AS COM_CNT       --YYCT_DEDU_DCNT, --연차사용일수
               							   
										  FROM SX_GW0050 A
											   LEFT JOIN SX_CO0070 B
											   ON(1=1
												AND B.CORP_NO = A.CORP_NO
												AND B.WORK_CD = ISNULL(A.WORK_CD, A.PLAN_WORK_CD)
											   )
										 WHERE 1=1
											AND A.CORP_NO = @CORP_NO
											--AND A.USR_ID = @USR_ID
											AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
											AND A.WORK_PLAN_YYMMDD IN ( SELECT T2.UPD_DATE
																		FROM  SX_GW0090 T1
																			   INNER JOIN SX_GW0110 T2 ON (T1.CORP_NO = T2.CORP_NO
																										   AND T1.APRVL_DOC_ID = T2.APRVL_DOC_ID )
																		WHERE T1.APRVL_STUS_CD = '0003' --결재완료
																		AND   T1.CORP_NO = A.CORP_NO
																		AND   T1.APLNT_ID = A.USR_ID
																	   )
										 GROUP BY
											   A.CORP_NO,
											   A.USR_ID
								) T2

						ON( 1=1
							AND T2.CORP_NO = A.CORP_NO
							AND T2.USR_ID = A.USR_ID
						)

				   --비승인 연차 일수
				   LEFT OUTER JOIN (
										SELECT A.CORP_NO,
											   A.USR_ID,

											   SUM(B.YYCT_DEDU_DAY) AS NONCOM_CNT   --비승인연차일수
               
										  FROM SX_GW0050 A
											   LEFT JOIN SX_CO0070 B
											   ON(1=1
												AND B.CORP_NO = A.CORP_NO
												AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
											   )
										 WHERE 1=1
											AND A.CORP_NO = @CORP_NO
											--AND A.USR_ID = @USR_ID
											AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
											AND A.WORK_PLAN_YYMMDD NOT IN ( SELECT T2.UPD_DATE
																		FROM  SX_GW0090 T1
																			   INNER JOIN SX_GW0110 T2 ON (T1.CORP_NO = T2.CORP_NO
																										   AND T1.APRVL_DOC_ID = T2.APRVL_DOC_ID )
																		WHERE T1.APRVL_STUS_CD = '0003' --결재완료
																		AND   T1.CORP_NO = A.CORP_NO
																		AND   T1.APLNT_ID = A.USR_ID
																	   )
										 GROUP BY
											   A.CORP_NO,
											   A.USR_ID
								) T31

						ON( 1=1
							AND T31.CORP_NO = A.CORP_NO
							AND T31.USR_ID = A.USR_ID
						)

                         --출퇴근 미기록 일수 
						 --출퇴근 미기록은 연차(V), '병', 특별휴무(X), 예비군훈련(Y)은 제외한 일자만 표시 한다. 
                        LEFT OUTER JOIN  ( 
											 SELECT CORP_NO
												  , USR_ID
												  , COUNT('A') ABSENT_CNT 
											 FROM   SX_GW0050
											 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
											 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
											 AND    PLAN_WORK_CD >= 'A'
											 AND    PLAN_WORK_CD <= 'T'
											 AND    WORK_START_DT IS NULL
											 AND    WORK_END_DT IS NULL
											 AND    ISNULL(WORK_CD, PLAN_WORK_CD) NOT IN ('W', 'V', '병', 'X', 'Y', 'U') --정기휴일, 연차, 병가, 특별휴무, 예비군훈련은 제외한다.(20170425추가)
											 GROUP BY CORP_NO, USR_ID
                                 ) T6
						ON (1=1
						    AND T6.CORP_NO = A.CORP_NO
							AND T6.USR_ID = A.USR_ID
							)


			 WHERE 1=1
			   AND A.CORP_NO = @CORP_NO
			   AND (NULLIF(@USR_NM, '') IS NULL OR A.USR_NM LIKE CONCAT('%', @USR_NM, '%'))
			   AND (NULLIF(@TEAM_CD, '') IS NULL OR A.TEAM_CD = @TEAM_CD)
			   AND (@RETIRE_YN = 'Y' OR NULLIF(A.RETIREMENT_DATE, '') IS NULL)


		     --ordering을 parameter를 넘겨서 처리 가능 
		     ORDER BY CASE WHEN @ORDER_TYPE = 'USR_NM'   THEN ISNULL(USR_NM, '')
			               WHEN @ORDER_TYPE = 'DUTY_CD'  THEN ISNULL(DUTY_CD, '')
			               WHEN @ORDER_TYPE = 'BZ_CD'    THEN ISNULL(BZ_CD, '') 
			               WHEN @ORDER_TYPE = 'TEAM_CD'  THEN ISNULL(TEAM_CD, '')
			               --WHEN @ORDER_TYPE = 'SORT_ODR' THEN ISNULL(SORT_ODR, 0) --
						   ELSE  ''
			          END
					 , B.SORT_ODR, ORDER_2




			 --ORDER BY
				--	<if test='user_order_by == "SORT_ODR"'>
				--		B.${user_order_by},
				--	</if>
				--	<if test='user_order_by != "SORT_ODR"'>
				--		A.${user_order_by},
				--	</if>
				--   ORDER_2
			 -- </select>

		


END --PROCEDURE END
GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_holiday_management_detail_DocID_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-20
-- Create Description :	스카이브릿지 연차등관리 상세 화면 조회-문서ID 추가
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_holiday_management_detail_select '1111','00001' , '2017'
-- exec pr_skybridge_gw_holiday_management_detail_select '1111','10004' , '2017'
-- exec pr_skybridge_gw_holiday_management_detail_select '1111','10216' , '2017'


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_holiday_management_detail_DocID_select]

		     @CORP_NO	VARCHAR(15)      --회사번호
		  ,  @USR_ID	VARCHAR(10)      --사용자ID
		  ,  @YYVCT_YY	VARCHAR(4)       --연차년도
AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		-- 신규 작성
		SELECT  T1.CORP_NO   --회사번호
			  , T1.USR_ID    --사용자ID
		      , T1.USR_NM    -- 이름
		   --   , ISNULL(T2.YYVCT_CNT, 0) AS YYVCT_CNT   -- 총연차일수

			  --, ISNULL(COM_CNT,0) AS COM_CNT  --승인연차일수
			  , ISNULL(COM_UPD_DATE,0) AS COM_UPD_DATE   --승인연차일

			  --, ISNULL(NONCOM_CNT,0) AS NONCOM_CNT   --비승인연차일수
			  , NONCOM_UPD_DATE AS NONCOM_UPD_DATE  --비승인연차일자

			  --, ISNULL(ABSENT_CNT, 0) AS ABSENT_CNT    --출퇴근미기록일수
			  --, ISNULL(ABSENT_DATE,0) AS  ABSENT_DATE   --출퇴근미기록일자

			  --, ISNULL(TG_CNT,0) AS TG_CNT   --퇴근 미기록 일수
			  --, TG_DATE AS TG_DATE   --퇴근미기록일자

			  --, ISNULL(SPECIAL_CNT,0) AS SPECIAL_CNT    --병가특별휴가일수
			  --, ISNULL(SPECIAL_DATE,0) AS SPECIAL_DATE    --병가특별휴가일자

			 -- , CONVERT(VARCHAR,ISNULL(T2.YYVCT_CNT, 0) - (ISNULL(COM_CNT,0) + ISNULL(NONCOM_CNT,0) + ISNULL(ABSENT_CNT, 0))) + ' = ' + 
			 --   CONVERT(VARCHAR,ISNULL(T2.YYVCT_CNT, 0)) + ' - ( ' +  
				--CONVERT(VARCHAR,ISNULL(COM_CNT,0)) + ' + ' +  
				--CONVERT(VARCHAR,ISNULL(NONCOM_CNT,0))+ ' + ' +  
				--CONVERT(VARCHAR,ISNULL(ABSENT_CNT,0)) + ')' AS REAMIN_HOLIDAY    --잔여휴가 = 총연차일 - (승인연차 + 비승인연차 + 출퇴근미기록)
		

         FROM (SELECT *
		       FROM   SX_GW0010   --사용자
			   WHERE 1=1
			   AND   CORP_NO = @CORP_NO
			   AND   USR_ID  = @USR_ID
			   ) T1
		       LEFT OUTER JOIN SX_GW0060 T2  --연차관리
					ON  ( 1=1
					      AND T2.CORP_NO = T1.CORP_NO 
					      AND T2.USR_ID  = T1.USR_ID
					      AND T2.YYVCT_YY = @YYVCT_YY 
					    )
                LEFT OUTER JOIN (
									SELECT  A.CORP_NO
			                              , A.APLNT_ID AS USR_ID
			           --                   , SUM(CASE WHEN UPD_WORK_CD IN ('V') THEN 1 --연차면 1일, 
										    --         WHEN UPD_WORK_CD IN ('H', 'I', 'J')   THEN 0.5  --반차면 0.5일을 뺀다
													 --ELSE 0 END) AS COM_CNT  --승인연차일수

 									  FROM SX_GW0090 A
                                            LEFT OUTER JOIN SX_GW0110 C
												ON( 1=1
												    AND C.CORP_NO = A.CORP_NO
												    AND C.APRVL_DOC_ID = A.APRVL_DOC_ID
												  )

										WHERE 1=1
										AND   A.CORP_NO = @CORP_NO
										AND   SUBSTRING(C.UPD_DATE,1,4) = @YYVCT_YY --해당년도의 연차만 조회
										AND   A.APRVL_KIND_CD = '0005' --연차등만 조회
										AND   A.CORP_NO + '!' + CONVERT(VARCHAR,A.APRVL_DOC_ID) IN (SELECT CORP_NO + '!' + CONVERT(VARCHAR,APRVL_DOC_ID)
																									  	FROM SX_GW0100 
																										WHERE APPR_STUS_CD = '0003' --승인 완료
																											AND  RGSTR_ID = @USR_ID )
										GROUP BY A.CORP_NO, A.APLNT_ID

                                 ) T3
						ON (1=1
						    AND T3.CORP_NO = T1.CORP_NO
							AND T3.USR_ID = T1.USR_ID
							)


                LEFT OUTER JOIN (
									SELECT  A.CORP_NO
			                              , A.APLNT_ID AS USR_ID

			                              , SUM(CASE WHEN UPD_WORK_CD IN ('V') THEN 1 --연차면 1일, 
										             WHEN UPD_WORK_CD IN ('H', 'I', 'J')   THEN 0.5  --반차면 0.5일을 뺀다
													 ELSE 0 END) AS NONCOM_CNT  --비승인연차일수


 									  FROM SX_GW0090 A
                                            LEFT OUTER JOIN SX_GW0110 C
												ON( 1=1
												    AND C.CORP_NO = A.CORP_NO
												    AND C.APRVL_DOC_ID = A.APRVL_DOC_ID
												  )

										WHERE 1=1
										AND   A.CORP_NO = @CORP_NO
										AND   SUBSTRING(C.UPD_DATE,1,4) = @YYVCT_YY --해당년도의 연차만 조회
										AND   A.APRVL_KIND_CD = '0005' --연차등만 조회
										AND   A.CORP_NO + '!' + CONVERT(VARCHAR,A.APRVL_DOC_ID) IN (SELECT CORP_NO + '!' + CONVERT(VARCHAR,APRVL_DOC_ID)
																									  	FROM SX_GW0100 
																										WHERE APPR_STUS_CD = '0002' --결재중
																											AND  RGSTR_ID = @USR_ID )
										GROUP BY A.CORP_NO, A.APLNT_ID

                                 ) T31
						ON (1=1
						    AND T31.CORP_NO = T1.CORP_NO
							AND T31.USR_ID = T1.USR_ID
							)


                        --승인완료 연차 일자 :  일1,  월2,  화3,  수4,  목5,  금6,  토7
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((

														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,UPD_DATE), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 7 THEN '토요일' 
																				END
														FROM   SX_GW0110 AS TA INNER JOIN SX_GW0090 AS TB 
														                              ON  TB.CORP_NO = TA.CORP_NO
																                      AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID 
														WHERE 1=1 
														AND   TA.CORP_NO = @CORP_NO 
														AND   TA.RGSTR_ID = @USR_ID 
												        AND   TA.UPD_WORK_CD IN ('V', 'H', 'I', 'J')   
 													    AND   SUBSTRING(TA.UPD_DATE,1,4) = @YYVCT_YY --당해년도 
														AND   TB.APRVL_KIND_CD = '0005' --결재문서가 '연차등'인 경우
														AND   TA.CORP_NO + '!' + CONVERT(VARCHAR,TA.APRVL_DOC_ID) IN (SELECT CORP_NO + '!' + CONVERT(VARCHAR,APRVL_DOC_ID)
																									  			        FROM SX_GW0100 
																													   WHERE APPR_STUS_CD = '0003' --승인 완료
																														 AND  RGSTR_ID = @USR_ID )

													    ORDER BY UPD_DATE
														FOR XML PATH('')

													),1,10,'') AS COM_UPD_DATE
											FROM   SX_GW0110 AS P

										) T4
							ON( 1=1
								AND T4.CORP_NO = T1.CORP_NO
								)

                        --비승인 연차 일자
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												 , STUFF((
														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,UPD_DATE), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 7 THEN '토요일' 
																				END

														FROM   SX_GW0110 AS TA INNER JOIN SX_GW0090 AS TB 
														                              ON  TB.CORP_NO = TA.CORP_NO
																                      AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID 
														WHERE 1=1 
														AND   TA.CORP_NO = @CORP_NO 
														AND   TA.RGSTR_ID = @USR_ID 
												        AND   TA.UPD_WORK_CD IN ('V', 'H', 'I', 'J')   
 													    AND   SUBSTRING(TA.UPD_DATE,1,4) = @YYVCT_YY --당해년도 
														AND   TB.APRVL_KIND_CD = '0005' --결재문서가 '연차등'인 경우
														AND   TA.CORP_NO + '!' + CONVERT(VARCHAR,TA.APRVL_DOC_ID) IN (SELECT CORP_NO + '!' + CONVERT(VARCHAR,APRVL_DOC_ID)
																									  			        FROM SX_GW0100 
																													   WHERE APPR_STUS_CD = '0002' --결재중
																														 AND  RGSTR_ID = @USR_ID )



													    ORDER BY UPD_DATE
														FOR XML PATH('')

													),1,10,'') AS NONCOM_UPD_DATE
											FROM   SX_GW0110

										) T5
							ON( 1=1
								AND T5.CORP_NO = T1.CORP_NO
								)

                         --출퇴근 미기록 일수 
                        LEFT OUTER JOIN  ( 
											 SELECT CORP_NO
												  , USR_ID
												  , COUNT('A') ABSENT_CNT 
											 FROM   SX_GW0050
											 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
											 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
											 AND    PLAN_WORK_CD >= 'A'
											 AND    PLAN_WORK_CD <= 'T'
											 AND    WORK_START_DT IS NULL
											 AND    WORK_END_DT IS NULL
											 GROUP BY CORP_NO, USR_ID
                                 ) T6
						ON (1=1
						    AND T6.CORP_NO = T1.CORP_NO
							AND T6.USR_ID = T1.USR_ID
							)

                         --출퇴근 미기록 일자
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((
														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + PLAN_WORK_CD + ')'
                                                                           
														FROM   SX_GW0050
														WHERE  CORP_NO + '!' + USR_ID + '!' + WORK_PLAN_YYMMDD IN 
														                                ( SELECT CORP_NO  + '!' + USR_ID + '!' + WORK_PLAN_YYMMDD
																								 FROM   SX_GW0050
																								 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
																								 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
																								 AND    PLAN_WORK_CD >= 'A'
																								 AND    PLAN_WORK_CD <= 'T'
																								 AND    WORK_START_DT IS NULL
																								 AND    WORK_END_DT IS NULL
																								 AND    USR_ID = @USR_ID
																						)  
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')
													),1,10,'') AS ABSENT_DATE
											FROM   SX_GW0050 AS P

										) T61
							ON( 1=1
								AND T61.CORP_NO = T1.CORP_NO
								)

                         --퇴근 미기록 일수 
                        LEFT OUTER JOIN  ( 
											 SELECT CORP_NO
												  , USR_ID
												  , COUNT('A') TG_CNT 
											 FROM   SX_GW0050
											 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
											 AND    PLAN_WORK_CD >=  'A'
											 AND    PLAN_WORK_CD <= 'T'
											 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
											 AND    WORK_START_DT IS NOT NULL
											 AND    WORK_END_DT IS NULL
											 GROUP BY CORP_NO, USR_ID
                                 ) T7
						ON (1=1
						    AND T7.CORP_NO = T1.CORP_NO
							AND T7.USR_ID = T1.USR_ID
							)

							
                         --퇴근 미기록 일자 
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((
														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + PLAN_WORK_CD + ')'
														FROM   SX_GW0050
														WHERE  CORP_NO + '!' + USR_ID+ '!' + WORK_PLAN_YYMMDD IN 
														                                     ( SELECT CORP_NO  + '!' + USR_ID+ '!' + WORK_PLAN_YYMMDD
																								 FROM   SX_GW0050
																								 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
																								 AND    PLAN_WORK_CD >=  'A'
																								 AND    PLAN_WORK_CD <= 'T'
																								 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
																								 AND    WORK_START_DT IS NOT NULL
																								 AND    WORK_END_DT IS NULL
																								 AND    USR_ID = @USR_ID
																							)  
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')
													),1,10,'') AS TG_DATE
											FROM   SX_GW0050 AS P

										) T71
						ON (1=1
						    AND T71.CORP_NO = T1.CORP_NO
							)

                         --병가, 특별휴가 일수
                        LEFT OUTER JOIN  ( 
											 SELECT CORP_NO
												  , RGSTR_ID AS USR_ID
												  , COUNT('A') SPECIAL_CNT 
											 FROM   SX_GW0110
											 WHERE  SUBSTRING(UPD_DATE,1,4) = @YYVCT_YY
											 AND    UPD_WORK_CD IN ('병', 'X', 'Y', 'Z')
											 AND    CORP_NO + '!' + CONVERT(VARCHAR, APRVL_DOC_ID) IN (SELECT CORP_NO + '!' + CONVERT(VARCHAR,APRVL_DOC_ID)
																									  		FROM SX_GW0100 
																											WHERE APPR_STUS_CD = '0003' --승인 완료
																												AND  RGSTR_ID = @USR_ID )

											 GROUP BY CORP_NO, RGSTR_ID
                                 ) T8
						ON (1=1
						    AND T8.CORP_NO = T1.CORP_NO
							AND T8.USR_ID = T1.USR_ID
							)

                         --병가, 특별휴가 일자 
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((
														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,UPD_DATE), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 7 THEN '토요일' 
																				END + ' (' + UPD_WORK_CD + ')'
														FROM   SX_GW0110
														WHERE  CORP_NO + '!' + RGSTR_ID   + '!' + UPD_DATE IN
														                                     ( SELECT CORP_NO  + '!' + RGSTR_ID   + '!' + UPD_DATE
																								 FROM   SX_GW0110
																								 WHERE  SUBSTRING(UPD_DATE,1,4) = @YYVCT_YY
																								 AND    UPD_WORK_CD IN ('병', 'X', 'Y', 'Z')
																								 AND    RGSTR_ID = @USR_ID
																							)  
											            AND    CORP_NO + '!' + CONVERT(VARCHAR, APRVL_DOC_ID) IN (SELECT CORP_NO + '!' + CONVERT(VARCHAR,APRVL_DOC_ID)
																									  		FROM SX_GW0100 
																											WHERE APPR_STUS_CD = '0003' --승인 완료
																												AND  RGSTR_ID = @USR_ID )

													    ORDER BY UPD_DATE
														FOR XML PATH('')
													),1,10,'') AS SPECIAL_DATE
											FROM   SX_GW0110 AS P

										) T81
						ON (1=1
						    AND T81.CORP_NO = T1.CORP_NO
							)



         WHERE 1=1
		 AND   T1.CORP_NO = @CORP_NO
		 AND   T1.USR_ID  = @USR_ID



END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_holiday_management_detail_select_id]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-20
-- Create Description :	스카이브릿지 연차등관리에서 일자를 가지고 결재문서 ID 조회하기
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_holiday_management_detail_select_id '1111','00001' , '20170301', '승인연차'
-- exec pr_skybridge_gw_holiday_management_detail_select_id '1111','10004' , '20170301', '비승인연차'
-- exec pr_skybridge_gw_holiday_management_detail_select_id '1111','10216' , '20170301',
-- exec pr_skybridge_gw_holiday_management_detail_select_id '1111','10027' , '20170301',
-- exec pr_skybridge_gw_holiday_management_detail_select_id '1111','00025' , '20170301',



-- select * from SX_GW0010 where USR_NM like '안' + '%'
-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_holiday_management_detail_select_id]

		     @CORP_NO	    VARCHAR(15)      --회사번호
		  ,  @USR_ID	    VARCHAR(10)      --사용자ID
		  ,  @APRVL_DATE  	VARCHAR(8)       --결재일자
		  ,  @GUBUN         VARCHAR(50)      --구분 : 승인연차, 비승인연차, 지각, 조퇴, 외출
AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  


		IF @GUBUN IN ('승인연차')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0110 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID	
								 AND TB.APRVL_STUS_CD = '0003' --결재완료
								 AND TB.APRVL_KIND_CD = '0005' --결재종류 : 연차등
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.UPD_DATE = @APRVL_DATE


		ELSE IF @GUBUN IN ('비승인연차')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0110 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID	
								 AND TB.APRVL_STUS_CD = '0002' --결재중
								 AND TB.APRVL_KIND_CD = '0005' --결재종류 : 연차등
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.UPD_DATE = @APRVL_DATE
		

		ELSE IF @GUBUN IN ('병가/특별휴가')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0110 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID	
								 AND TB.APRVL_STUS_CD = '0003' --결재완료
								 AND TB.APRVL_KIND_CD = '0005' --결재종류 : 연차등
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.UPD_DATE = @APRVL_DATE

		ELSE IF @GUBUN IN ('지각A')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0110 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID	
								 AND TB.APRVL_STUS_CD = '0003' --결재완료
								 AND TB.APRVL_KIND_CD = '0002' --결재종류 : 지각
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.UPD_DATE = @APRVL_DATE

		ELSE IF @GUBUN IN ('조퇴A')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0110 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID	
								 AND TB.APRVL_STUS_CD = '0003' --결재완료
								 AND TB.APRVL_KIND_CD = '0003' --결재종류 : 조퇴
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.UPD_DATE = @APRVL_DATE

		ELSE IF @GUBUN IN ('외출A')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0110 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID	
								 AND TB.APRVL_STUS_CD = '0003' --결재완료
								 AND TB.APRVL_KIND_CD = '0008' --결재종류 : 외출
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.UPD_DATE = @APRVL_DATE


		ELSE IF @GUBUN IN ('지각')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0050 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APLNT_ID = TA.RGSTR_ID
								 AND TB.APRVL_STUS_CD IN ('0001', '0002', '0003')
								 AND TB.APRVL_KIND_CD = '0002' --결재종류 : 지각
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.WORK_PLAN_YYMMDD = @APRVL_DATE


		ELSE IF @GUBUN IN ('조퇴')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0050 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APLNT_ID = TA.RGSTR_ID
								 AND TB.APRVL_STUS_CD IN ('0001', '0002', '0003')
								 AND TB.APRVL_KIND_CD = '0003' --결재종류 : 조퇴
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.WORK_PLAN_YYMMDD = @APRVL_DATE


		ELSE IF @GUBUN IN ('외출')
				SELECT MAX(TB.APRVL_DOC_ID) AS APRVL_DOC_ID
				FROM   SX_GW0050 TA 
						   INNER JOIN SX_GW0090 TB
							 ON (1=1
								 AND TB.CORP_NO = TA.CORP_NO
								 AND TB.APLNT_ID = TA.RGSTR_ID
								 AND TB.APRVL_STUS_CD IN ('0001', '0002', '0003')
								 AND TB.APRVL_KIND_CD = '0008' --결재종류 : 외출
								 AND TB.APLNT_ID = @USR_ID
								 )	        
				WHERE 1=1 
				AND   TA.CORP_NO = @CORP_NO
				AND   TA.RGSTR_ID = @USR_ID
				AND   TA.WORK_PLAN_YYMMDD = @APRVL_DATE



END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_holiday_management_detail_select_new]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-20
-- Create Description :	스카이브릿지 연차등관리 상세 화면 조회- 수정
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_holiday_management_detail_select_new '1111','00001' , '2017'
-- exec pr_skybridge_gw_holiday_management_detail_select_new '1111','10004' , '2017'
-- exec pr_skybridge_gw_holiday_management_detail_select_new '1111','10216' , '2017'
-- exec pr_skybridge_gw_holiday_management_detail_select_new '1111','10027' , '2017'
-- exec pr_skybridge_gw_holiday_management_detail_select_new '1111','00025' , '2017'

--exec pr_skybridge_gw_holiday_management_detail_select_new '1111','00038' , '2020'
--select * from SX_GW0010 where USR_NM = '조유진'

-- select * from SX_GW0010 where USR_NM like '안' + '%'
-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_holiday_management_detail_select_new]

		     @CORP_NO	VARCHAR(15)      --회사번호
		  ,  @USR_ID	VARCHAR(10)      --사용자ID
		  ,  @YYVCT_YY	VARCHAR(4)       --연차년도
AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		-- 신규 작성
		SELECT  T1.CORP_NO   --회사번호
			  , T1.USR_ID    --사용자ID
		      , T1.USR_NM    -- 이름
		      , ISNULL(T11.YYVCT_CNT, 0) AS YYVCT_CNT   -- 총연차일수

			  , ISNULL(COM_CNT,0) AS COM_CNT  --승인연차일수
			  , ISNULL(COM_UPD_DATE,0) AS COM_UPD_DATE   --승인연차일

			  , ISNULL(NONCOM_CNT,0) AS NONCOM_CNT   --비승인연차일수
			  , NONCOM_UPD_DATE AS NONCOM_UPD_DATE  --비승인연차일자

			  , ISNULL(ABSENT_CNT, 0) AS ABSENT_CNT    --출퇴근미기록일수
			  , ISNULL(ABSENT_DATE,0) AS  ABSENT_DATE   --출퇴근미기록일자

			  , ISNULL(TG_CNT,0) AS TG_CNT   --퇴근 미기록 일수
			  , TG_DATE AS TG_DATE   --퇴근미기록일자

			  , ISNULL(T2.SPECIAL_CNT,0) AS SPECIAL_CNT    --병가특별휴가일수
			  , ISNULL(T81.SPECIAL_DATE,0) AS SPECIAL_DATE    --병가특별휴가일자

			  , T2.LATE_DCNT AS  LATE_DCNT --지각횟수
			  , LATE_DATE --지각일자

			  , T2.SKIPOFF_DCNT  AS SKIPOFF_DCNT --조퇴횟수
			  , SKIPOFF_DATE--조퇴일자
			  
			  , T2.OUTING_CNT  AS OUTING_CNT --외출횟수
			  , OUTING_DATE--외출일자


			  , CONVERT(VARCHAR,ISNULL(T11.YYVCT_CNT, 0) - (ISNULL(COM_CNT,0) + ISNULL(NONCOM_CNT,0) + ISNULL(ABSENT_CNT, 0))) + ' = ' + 
			    CONVERT(VARCHAR,ISNULL(T11.YYVCT_CNT, 0)) + ' - ( ' +  
				CONVERT(VARCHAR,ISNULL(COM_CNT,0)) + ' + ' +  
				CONVERT(VARCHAR,ISNULL(NONCOM_CNT,0))+ ' + ' +  
				CONVERT(VARCHAR,ISNULL(ABSENT_CNT,0)) + ')' AS REAMIN_HOLIDAY    --잔여휴가 = 총연차일 - (승인연차 + 비승인연차 + 출퇴근미기록)
		

         FROM (SELECT *
		       FROM   SX_GW0010   --사용자
			   WHERE 1=1
			   AND   CORP_NO = @CORP_NO
			   AND   USR_ID  = @USR_ID
			   ) T1

			   LEFT OUTER JOIN 
				--INNER JOIN 
					 (  SELECT *
					   FROM   SX_GW0060   --총연차
					   WHERE 1=1
					   AND   CORP_NO = @CORP_NO
					   AND   USR_ID  = @USR_ID
					   AND   YYVCT_YY = @YYVCT_YY
					   ) T11
				ON (1=1
				    AND T11.CORP_NO = T1.CORP_NO
					AND T11.USR_ID = T1.USR_ID
					)

               --승인 연차
			   LEFT OUTER JOIN (
			   --INNER JOIN (
									SELECT A.CORP_NO,
										   A.USR_ID,

										   --SUM(CASE WHEN ISNULL(NULLIF(A.ABTI_YN, ''), 'N') != 'Y' THEN B.APLY_WORK_DAY END) AS WORK_DCNT,  --근무

										   SUM(B.YYCT_DEDU_DAY) AS COM_CNT,       --YYCT_DEDU_DCNT, --연차사용일수
               
										   --COUNT(CASE WHEN ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) = '결' OR A.ABTI_YN = 'Y' THEN 1 END) AS ABTI_DCNT, --결근

										   COUNT(CASE WHEN A.LATE_MIN > 0 THEN 1 END) AS LATE_DCNT,                                                          --지각

										   --조퇴는 오후반차(H), 야근반차(J) 인경우 제외한다(20170425)
										   COUNT(CASE WHEN A.SKIPOFF_REMN_BZ_MIN > 0 AND ISNULL(A.WORK_CD, A.PLAN_WORK_CD) NOT IN ('H', 'J')  THEN 1 END) AS SKIPOFF_DCNT,  --조퇴
										   
										   
										   SUM(A.OUTING_CNT) AS OUTING_CNT,																					 --외출횟수

										   SUM(A.OUTING_MIN) AS OUTING_MIN,																				     --외출시간(분)

										   COUNT(CASE WHEN ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) IN ('병', 'X', 'Y') THEN 1 END) AS  SPECIAL_CNT --SICKLEAVE_DCNT --병가, 특별휴가 일수

										   --SUM(A.TOT_WORK_MIN) AS TOT_WORK_MIN,
										   --SUM(A.LATE_MIN) AS LATE_MIN,
										   --SUM(A.SKIPOFF_REMN_BZ_MIN) AS SKIPOFF_REMN_BZ_MIN,
										   --SUM(A.INCLU_WORK_OT_MIN) AS INCLU_WORK_OT_MIN,
										   --SUM(A.OT_WORK_MIN) AS OT_WORK_MIN,
										   --SUM(A.NGT_OT_MIN) AS NGT_OT_MIN
									  FROM SX_GW0050 A
										   LEFT JOIN SX_CO0070 B
										   ON(1=1
											AND B.CORP_NO = A.CORP_NO
											AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
										   )
									 WHERE 1=1
										AND A.CORP_NO = @CORP_NO
										AND A.USR_ID = @USR_ID
										AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
										AND A.WORK_PLAN_YYMMDD IN ( SELECT T2.UPD_DATE
										                            FROM  SX_GW0090 T1
																	       INNER JOIN SX_GW0110 T2 ON (T1.CORP_NO = T2.CORP_NO
																		                               AND T1.APRVL_DOC_ID = T2.APRVL_DOC_ID )
													                WHERE T1.APRVL_STUS_CD = '0003' --결재완료
																	AND   T1.CORP_NO = @CORP_NO
																	AND   T1.APLNT_ID = @USR_ID
																   )
									 GROUP BY
										   A.CORP_NO,
										   A.USR_ID
							) T2

					ON( 1=1
						AND T2.CORP_NO = T1.CORP_NO
						AND T2.USR_ID = T1.USR_ID
					)
                       --승인완료 연차 일자 :  일1,  월2,  화3,  수4,  목5,  금6,  토7
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((

														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) + ')'
														
														
														  FROM SX_GW0050 A
															   LEFT JOIN SX_CO0070 B
															   ON(1=1
																AND B.CORP_NO = A.CORP_NO
																AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
															   )
														 WHERE 1=1
															AND A.CORP_NO = @CORP_NO
															AND A.USR_ID = @USR_ID
															AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
															--AND B.WORK_CD IN  ('V', 'H', 'I', 'J')  --연차, 반차
															AND B.WORK_CD IN(SELECT WORK_CD FROM SX_CO0070 WHERE ISNULL(YYCT_DEDU_DAY, 0) > 0)
														     AND A.WORK_PLAN_YYMMDD IN ( SELECT T2.UPD_DATE
										                            FROM  SX_GW0090 T1
																	       INNER JOIN SX_GW0110 T2 ON (T1.CORP_NO = T2.CORP_NO
																		                               AND T1.APRVL_DOC_ID = T2.APRVL_DOC_ID )
													                WHERE T1.APRVL_STUS_CD = '0003' --결재완료
																	AND   T1.CORP_NO = @CORP_NO
																	AND   T1.APLNT_ID = @USR_ID
																   )
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')

													),1,10,'') AS COM_UPD_DATE
											FROM   SX_CO0070 AS P

										) T4
							ON( 1=1
								AND T4.CORP_NO = T1.CORP_NO
								)




               --비승인 연차
			   LEFT OUTER JOIN (
			   --INNER JOIN (
									SELECT A.CORP_NO,
										   A.USR_ID,

										   --SUM(CASE WHEN ISNULL(NULLIF(A.ABTI_YN, ''), 'N') != 'Y' THEN B.APLY_WORK_DAY END) AS WORK_DCNT,  --근무

										   SUM(B.YYCT_DEDU_DAY) AS NONCOM_CNT ,  --비승인연차일수
               
										   --COUNT(CASE WHEN ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) = '결' OR A.ABTI_YN = 'Y' THEN 1 END) AS ABTI_DCNT, --결근

										   COUNT(CASE WHEN A.LATE_MIN > 0 THEN 1 END) AS LATE_DCNT,                                                          --지각

										   --조퇴는 오후반차(H), 야근반차(J) 인경우 제외한다(20170425)
										   COUNT(CASE WHEN A.SKIPOFF_REMN_BZ_MIN > 0 AND ISNULL(A.WORK_CD, A.PLAN_WORK_CD) NOT IN ('H', 'J')  THEN 1 END) AS SKIPOFF_DCNT,  --조퇴
										   
										   
										   SUM(A.OUTING_CNT) AS OUTING_CNT,																					 --외출횟수

										   SUM(A.OUTING_MIN) AS OUTING_MIN,																				     --외출시간(분)

										   COUNT(CASE WHEN ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) IN ('병', 'X', 'Y') THEN 1 END) AS  SPECIAL_CNT --SICKLEAVE_DCNT --병가, 특별휴가 일수

										   --SUM(A.TOT_WORK_MIN) AS TOT_WORK_MIN,
										   --SUM(A.LATE_MIN) AS LATE_MIN,
										   --SUM(A.SKIPOFF_REMN_BZ_MIN) AS SKIPOFF_REMN_BZ_MIN,
										   --SUM(A.INCLU_WORK_OT_MIN) AS INCLU_WORK_OT_MIN,
										   --SUM(A.OT_WORK_MIN) AS OT_WORK_MIN,
										   --SUM(A.NGT_OT_MIN) AS NGT_OT_MIN
									  FROM SX_GW0050 A
										   LEFT JOIN SX_CO0070 B
										   ON(1=1
											AND B.CORP_NO = A.CORP_NO
											AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
										   )
									 WHERE 1=1
										AND A.CORP_NO = @CORP_NO
										AND A.USR_ID = @USR_ID
										AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
										AND A.WORK_PLAN_YYMMDD NOT IN ( SELECT T2.UPD_DATE
										                            FROM  SX_GW0090 T1
																	       INNER JOIN SX_GW0110 T2 ON (T1.CORP_NO = T2.CORP_NO
																		                               AND T1.APRVL_DOC_ID = T2.APRVL_DOC_ID )
													                WHERE T1.APRVL_STUS_CD = '0003' --결재완료
																	AND   T1.CORP_NO = @CORP_NO
																	AND   T1.APLNT_ID = @USR_ID
																   )
									 GROUP BY
										   A.CORP_NO,
										   A.USR_ID
							) T31

					ON( 1=1
						AND T31.CORP_NO = T1.CORP_NO
						AND T31.USR_ID = T1.USR_ID
					)
                       --비승인연차 일자 :  일1,  월2,  화3,  수4,  목5,  금6,  토7
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((

														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) + ')'
														
														
														  FROM SX_GW0050 A
															   LEFT JOIN SX_CO0070 B
															   ON(1=1
																AND B.CORP_NO = A.CORP_NO
																AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
															   )
														 WHERE 1=1
															AND A.CORP_NO = @CORP_NO
															AND A.USR_ID = @USR_ID
															AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
															--AND B.WORK_CD IN  ('V', 'H', 'I', 'J')  --연차, 반차
															AND B.WORK_CD IN(SELECT WORK_CD FROM SX_CO0070 WHERE ISNULL(YYCT_DEDU_DAY, 0) > 0)
														     AND A.WORK_PLAN_YYMMDD NOT IN ( SELECT T2.UPD_DATE
																								FROM  SX_GW0090 T1
																									   INNER JOIN SX_GW0110 T2 ON (T1.CORP_NO = T2.CORP_NO
																																   AND T1.APRVL_DOC_ID = T2.APRVL_DOC_ID )
																								WHERE T1.APRVL_STUS_CD = '0003' --결재완료
																								AND   T1.CORP_NO = @CORP_NO
																								AND   T1.APLNT_ID = @USR_ID
																							   )
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')

													),1,10,'') AS NONCOM_UPD_DATE
											FROM   SX_CO0070 AS P

										) T5
							ON( 1=1
								AND T4.CORP_NO = T1.CORP_NO
								)




      --                  --비승인 연차 일수 - OLD
					 --  LEFT OUTER JOIN (
						--			SELECT  A.CORP_NO
			   --                           , A.APLNT_ID AS USR_ID

			   --                           , SUM(CASE WHEN UPD_WORK_CD IN ('V') THEN 1 --연차면 1일, 
						--				             WHEN UPD_WORK_CD IN ('H', 'I', 'J')   THEN 0.5  --반차면 0.5일을 뺀다
						--							 ELSE 0 END) AS NONCOM_CNT  --비승인연차일수


 					--				  FROM SX_GW0090 A
      --                                      LEFT OUTER JOIN SX_GW0110 C
						--						ON( 1=1
						--						    AND C.CORP_NO = A.CORP_NO
						--						    AND C.APRVL_DOC_ID = A.APRVL_DOC_ID
						--						  )

						--				WHERE 1=1
						--				AND   A.CORP_NO = @CORP_NO
						--				AND   A.APLNT_ID = @USR_ID 
						--				AND   SUBSTRING(C.UPD_DATE,1,4) = @YYVCT_YY --해당년도의 연차만 조회
						--				AND   A.APRVL_KIND_CD = '0005' --연차등만 조회
						--				AND   A.APRVL_STUS_CD = '0002' --결재중
						--				GROUP BY A.CORP_NO, A.APLNT_ID

      --                           ) T31
						--ON (1=1
						--    AND T31.CORP_NO = T1.CORP_NO
						--	AND T31.USR_ID = T1.USR_ID
						--	)

      --                  --비승인 연차 일자
      --                  LEFT OUTER JOIN  ( 
						--					SELECT DISTINCT CORP_NO
						--						 , STUFF((
						--								SELECT '<br>' +
						--								        CONVERT(VARCHAR, CONVERT(DATETIME,UPD_DATE), 23) + ' ' +
	 				--										                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 1 THEN '일요일'
						--															WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 2 THEN '월요일'
						--													        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 3 THEN '화요일'
						--													        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 4 THEN '수요일'
						--													        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 5 THEN '목요일'
						--													        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 6 THEN '금요일'
						--													        WHEN DATEPART (DW, CONVERT(DATETIME,UPD_DATE)) = 7 THEN '토요일' 
						--														END + ' (' + ISNULL(NULLIF(UPD_WORK_CD, ''), UPD_BF_WORK_CD) + ')'

						--								FROM   SX_GW0110 AS TA INNER JOIN SX_GW0090 AS TB 
						--								                              ON  TB.CORP_NO = TA.CORP_NO
						--										                      AND TB.APRVL_DOC_ID = TA.APRVL_DOC_ID 
						--								WHERE 1=1 
						--								AND   TA.CORP_NO = @CORP_NO 
						--								AND   TB.APLNT_ID = @USR_ID 
						--						        AND   TA.UPD_WORK_CD IN ('V', 'H', 'I', 'J')   
 					--								    AND   SUBSTRING(TA.UPD_DATE,1,4) = @YYVCT_YY --당해년도 
						--								AND   TB.APRVL_KIND_CD = '0005' --결재문서가 '연차등'인 경우
						--								AND   TB.APRVL_STUS_CD = '0002' --결재중

						--							    ORDER BY UPD_DATE
						--								FOR XML PATH('')

						--							),1,10,'') AS NONCOM_UPD_DATE
						--					FROM   SX_GW0110

						--				) T5
						--	ON( 1=1
						--		AND T5.CORP_NO = T1.CORP_NO
						--		)

                         --출퇴근 미기록 일수 
						 --출퇴근 미기록은 연차(V), '병', 특별휴무(X), 예비군훈련(Y)은 제외한 일자만 표시 한다. 
                        LEFT OUTER JOIN  ( 
											 SELECT CORP_NO
												  , USR_ID
												  , COUNT('A') ABSENT_CNT 
											 FROM   SX_GW0050
											 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
											 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
											 /*
											 AND    PLAN_WORK_CD >= 'A'
											 AND    PLAN_WORK_CD <= 'T'
											 */
											 AND    ISNULL(WORK_CD, PLAN_WORK_CD) >= 'A'
											 AND    ISNULL(WORK_CD, PLAN_WORK_CD) <= 'T'
											 
											 AND    WORK_START_DT IS NULL
											 AND    WORK_END_DT IS NULL
											 AND    ISNULL(WORK_CD, PLAN_WORK_CD) NOT IN ('V', '병', 'X', 'Y') --연차, 병가, 특별휴무, 예비군훈련은 제외한다.(20170425추가)
											 GROUP BY CORP_NO, USR_ID
                                 ) T6
						ON (1=1
						    AND T6.CORP_NO = T1.CORP_NO
							AND T6.USR_ID = T1.USR_ID
							)

                         --출퇴근 미기록 일자
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((
														SELECT '<br>' + 
														      CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + PLAN_WORK_CD + ')'
                                                                           
														FROM   SX_GW0050
														WHERE  CORP_NO + '!' + USR_ID + '!' + WORK_PLAN_YYMMDD IN 
														                                ( SELECT CORP_NO  + '!' + USR_ID + '!' + WORK_PLAN_YYMMDD
																								 FROM   SX_GW0050
																								 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
																								 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
																								 AND    ISNULL(WORK_CD, PLAN_WORK_CD) >= 'A'
																								 AND    ISNULL(WORK_CD, PLAN_WORK_CD) <= 'T'
																								 AND    WORK_START_DT IS NULL
																								 AND    WORK_END_DT IS NULL
																								 AND    USR_ID = @USR_ID
																								 AND    ISNULL(WORK_CD, PLAN_WORK_CD) NOT IN ('V', '병', 'X', 'Y') --연차, 병가, 특별휴무, 예비군훈련은 제외한다.(20170425추가)

																						)  
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')
													),1,10,'') AS ABSENT_DATE
											FROM   SX_GW0050 AS P

										) T61
							ON( 1=1
								AND T61.CORP_NO = T1.CORP_NO
								)

                         --퇴근 미기록 일수 
                        LEFT OUTER JOIN  ( 
											 SELECT CORP_NO
												  , USR_ID
												  , COUNT('A') TG_CNT 
											 FROM   SX_GW0050
											 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
											 AND    PLAN_WORK_CD >=  'A'
											 AND    PLAN_WORK_CD <= 'T'
											 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
											 AND    WORK_START_DT IS NOT NULL
											 AND    WORK_END_DT IS NULL
											 GROUP BY CORP_NO, USR_ID
                                 ) T7
						ON (1=1
						    AND T7.CORP_NO = T1.CORP_NO
							AND T7.USR_ID = T1.USR_ID
							)

							
                         --퇴근 미기록 일자 
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((
														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + PLAN_WORK_CD + ')'
														FROM   SX_GW0050
														WHERE  CORP_NO + '!' + USR_ID+ '!' + WORK_PLAN_YYMMDD IN 
														                                     ( SELECT CORP_NO  + '!' + USR_ID+ '!' + WORK_PLAN_YYMMDD
																								 FROM   SX_GW0050
																								 WHERE  SUBSTRING(WORK_PLAN_YYMMDD,1,4) = @YYVCT_YY
																								 AND    PLAN_WORK_CD >=  'A'
																								 AND    PLAN_WORK_CD <= 'T'
																								 AND    WORK_PLAN_YYMMDD < CONVERT(VARCHAR, GETDATE(), 112)--오늘일자 보다 하루 적은 날자로 가져온다.
																								 AND    WORK_START_DT IS NOT NULL
																								 AND    WORK_END_DT IS NULL
																								 AND    USR_ID = @USR_ID
																							)  
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')
													),1,10,'') AS TG_DATE
											FROM   SX_GW0050 AS P

										) T71
						ON (1=1
						    AND T71.CORP_NO = T1.CORP_NO
							)

                         --병가, 특별휴가 일자 
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((
														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) + ')'
														
														FROM SX_GW0050 A
															   LEFT JOIN SX_CO0070 B
															   ON(1=1
																AND B.CORP_NO = A.CORP_NO
																AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
															   )
														 WHERE 1=1
															AND A.CORP_NO = @CORP_NO
															AND A.USR_ID = @USR_ID
															AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
															AND B.WORK_CD IN ('병', 'X', 'Y', 'Z') 
														
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')
														
													),1,10,'') AS SPECIAL_DATE
											FROM   SX_CO0070 AS P

										) T81
						ON (1=1
						    AND T81.CORP_NO = T1.CORP_NO
							)

					
                        --지각 일자 :  일1,  월2,  화3,  수4,  목5,  금6,  토7
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((

														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) + ')'
														
														
														  FROM SX_GW0050 A
														 WHERE 1=1
															AND A.CORP_NO = @CORP_NO
															AND A.USR_ID = @USR_ID
															AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
															AND A.LATE_MIN > 0  
														
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')

													),1,10,'') AS LATE_DATE
											FROM   SX_GW0050 AS P

										) T91
							ON( 1=1
								AND T91.CORP_NO = T1.CORP_NO
								)


                        --조퇴 일자 :  일1,  월2,  화3,  수4,  목5,  금6,  토7
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((

														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) + ')'
														
														
														  FROM SX_GW0050 A
														 WHERE 1=1
															AND A.CORP_NO = @CORP_NO
															AND A.USR_ID = @USR_ID
															AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
															AND A.SKIPOFF_REMN_BZ_MIN > 0  
															AND ISNULL(A.WORK_CD, A.PLAN_WORK_CD) NOT IN ('H', 'J')  --조퇴는 오후반차(H), 야근반차(J) 인경우 제외한다(20170425)
														
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')

													),1,10,'') AS SKIPOFF_DATE
											FROM   SX_GW0050 AS P

										) T92
							ON( 1=1
								AND T92.CORP_NO = T1.CORP_NO
								)


                        --외출 일자 :  일1,  월2,  화3,  수4,  목5,  금6,  토7
                        LEFT OUTER JOIN  ( 
											SELECT DISTINCT CORP_NO
												  ,STUFF((

														SELECT '<br>' + CONVERT(VARCHAR, CONVERT(DATETIME,WORK_PLAN_YYMMDD), 23) + ' ' +
	 														                   CASE WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 1 THEN '일요일'
																					WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 2 THEN '월요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 3 THEN '화요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 4 THEN '수요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 5 THEN '목요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 6 THEN '금요일'
																			        WHEN DATEPART (DW, CONVERT(DATETIME,WORK_PLAN_YYMMDD)) = 7 THEN '토요일' 
																				END + ' (' + ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) + ')'
														
														
														  FROM SX_GW0050 A
														 WHERE 1=1
															AND A.CORP_NO = @CORP_NO
															AND A.USR_ID = @USR_ID
															AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
															AND A.OUTING_CNT >= 1  
														
													    ORDER BY WORK_PLAN_YYMMDD
														FOR XML PATH('')

													),1,10,'') AS OUTING_DATE
											FROM   SX_GW0050 AS P

										) T93
							ON( 1=1
								AND T93.CORP_NO = T1.CORP_NO
								)

         WHERE 1=1
		 AND   T1.CORP_NO = @CORP_NO
		 AND   T1.USR_ID  = @USR_ID



END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_holiday_request_detail_select_new]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 연차등신청 상세 화면 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_holiday_request_detail_select_new '1111','10027' , '2017' --안순회씨


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_holiday_request_detail_select_new]

		     @CORP_NO	VARCHAR(15)      --회사번호
		  ,  @USR_ID	VARCHAR(10)      --사용자ID
		  ,  @YYVCT_YY	VARCHAR(4)       --연차년도

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  



	SELECT 
	       --T1.* ,
	       --T2.* ,

		    T1.CORP_NO
		   , T1.USR_ID
		   , T1.WORK_CD
		   , T1.FREE_CNT
		   , T1.WORK_PLAN_YYMMDD
		   , T2.APRVL_STUS_DS
		   , T2.APRVL_DOC_ID
		   , T2.APRVL_STUS_CD
		   , T2.APRVL_KIND_CD
		   , T2.OFFER_DT
		   , T2.CMPL_DT
		   , T2.APRVL_CMPL_SNO
		   , T2.FINAL_APRVL_SNO
		   --, T2.USER_ID
		   , T2.APLNT_NM
		   , T2.BZ_DEPUTY_NM
		   , T2.UPD_BF_WORK_CD
		   , ISNULL(T2.UPD_WORK_CD, WORK_CD) AS UPD_WORK_CD
		   , ISNULL(T2.APLNT_CN, '<<< 결재 필요 >>>') AS APLNT_CN
		   , T2.BZ_CN
		   , T2.OFFER_CN
		   , T2.UPD_DT
		   , T2.COMM_CD_NM
		   , ISNULL (T2.UPD_DATE,WORK_PLAN_YYMMDD) AS UPD_DATE

	FROM  (
				SELECT  A.CORP_NO,
						A.USR_ID,

						ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) AS WORK_CD, 
						ISNULL(B.YYCT_DEDU_DAY,0) AS FREE_CNT,       --연차사용일수
               
						WORK_PLAN_YYMMDD --연차일자

					FROM SX_GW0050 A
						LEFT JOIN SX_CO0070 B
						ON(1=1
						AND B.CORP_NO = A.CORP_NO
						AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
						)
					WHERE 1=1
					AND A.CORP_NO = @CORP_NO
					AND A.USR_ID = @USR_ID
					AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
					AND ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) IN ('H', 'I', 'J', 'V', '병','U', 'X', 'Y')

			) T1 
			
			left outer join
			--inner JOIN 

			(
					SELECT A.COMM_CD_NM AS APRVL_STUS_DS  --결재
						   , A.*

					  FROM (
 								SELECT A.CORP_NO,
									   A.APRVL_DOC_ID,
									   A.APRVL_STUS_CD,
									   A.APRVL_KIND_CD,
									   A.OFFER_DT,
									   A.CMPL_DT,
									   A.APRVL_CMPL_SNO,
									   A.FINAL_APRVL_SNO,
									   A.APLNT_ID AS USR_ID,
									   U1.USR_NM AS APLNT_NM,
									   U4.USR_NM AS BZ_DEPUTY_NM,

									   U3.UPD_BF_WORK_CD,
									   U3.UPD_WORK_CD,

									   A.APLNT_CN ,
									   A.BZ_CN,
									   A.OFFER_CN,
									   A.UPD_DT,
									   COMM_CD_NM,
									   UPD_DATE
 
								  FROM (SELECT * 
								         FROM SX_GW0090
										 WHERE CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID) IN ( SELECT CORP_NO + '|' + CONVERT(VARCHAR, MAX(APRVL_DOC_ID))
																					 		        FROM   SX_GW0110
																								    WHERE CORP_NO = @CORP_NO
																								    AND   RGSTR_ID = @USR_ID
																							  	    GROUP BY CORP_NO, UPD_DATE
																								 )
									   )  A   --같은날 중복으로 결재신청이 될수 있으므로 마지막으로 신청한 것만 사용

									   LEFT JOIN SX_GW0010 U1
									   ON(1=1
										  AND U1.CORP_NO = A.CORP_NO
										  AND U1.USR_ID = A.APLNT_ID
										 ) 

										 LEFT JOIN (SELECT CORP_NO
														 , APRVL_DOC_ID
														 , UPD_DATE AS UPD_DATE

														 , UPD_BF_WORK_CD AS UPD_BF_WORK_CD  --변경전 근무 코드
														 , UPD_WORK_CD AS UPD_WORK_CD  --변경후 근무코드
													FROM   SX_GW0110
													) U3  


													   ON(1=1
														  AND U3.CORP_NO = A.CORP_NO
														  AND U3.APRVL_DOC_ID = A.APRVL_DOC_ID
														 ) 
							  
													   LEFT JOIN  SX_GW0010 U4
															ON(1=1
															   AND U4.USR_ID = A.BZ_DEPUTY_ID )

													   LEFT JOIN SX_CO0040 COMMON
															ON (1=1
															    AND COMMON.CORP_NO = A.CORP_NO
															    AND COMMON.COMM_CL_CD = 'SX011' --결재상태코드
															    AND COMMON.COMM_CD = APRVL_STUS_CD )

									 WHERE 1=1
									   AND A.CORP_NO  = @CORP_NO
									   AND A.APLNT_ID = @USR_ID
									   AND SUBSTRING(UPD_DATE,1,4) = @YYVCT_YY
									   --AND APRVL_STUS_CD IN ('0003') --결재완료
									   AND UPD_WORK_CD IN ('H', 'I', 'J', 'V', '병','U', 'X', 'Y')
	    
							 ) A
		
				) T2 ON (1=1
				         AND T1.CORP_NO = T2.CORP_NO
						 AND T1.USR_ID = T2.USR_ID
						 AND T1.WORK_PLAN_YYMMDD = T2.UPD_DATE
						 )

				ORDER BY T1.WORK_PLAN_YYMMDD 

	


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_holiday_request_detail_select_total_new]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 연차등신청 상세 화면 합계 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_holiday_request_detail_select_total_new '1111','00001' , '2017'
-- exec pr_skybridge_gw_holiday_request_detail_select_total_new '1111','10004' , '2017'
-- exec pr_skybridge_gw_holiday_request_detail_select_total_new '1111','10027' , '2017'


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_holiday_request_detail_select_total_new]

		     @CORP_NO	VARCHAR(15)      --회사번호
		  ,  @USR_ID	VARCHAR(10)      --사용자ID
		  ,  @YYVCT_YY	VARCHAR(4)       --연차년도

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		-- 20170601 신규 작성 (pr_skybridge_gw_holiday_request_detail_select_new 과 같은 쿼리 사용
		SELECT  '총연차일 : ' + CONVERT(VARCHAR, ISNULL(YYVCT_CNT * 1.00,0)) + '일'            AS YYVCT_CNT  --총연차일
		      , '신청일수 : ' + CONVERT(VARCHAR, ISNULL(FREE_CNT,0)) + '일'              AS SINCHUNG_CNT --신청일수  
			  , '사용일수 : ' + CONVERT(VARCHAR, ISNULL(FREE_CNT,0)) + '일'              AS USD_CNT --사용일수
			  , '특휴·병가등일수 : ' + CONVERT(VARCHAR, ISNULL(SPECIAL_CNT*1.00,0)) + '일'  AS SPECIAL_CNT  --특휴병가등일수
			  , '잔여연차 : ' + CONVERT(VARCHAR, ISNULL(YYVCT_CNT,0) - ISNULL(FREE_CNT,0)) + '일'  AS REMAIN_CNT --잔여연차

        FROM (
		        --pr_skybridge_gw_holiday_request_detail_select_new 과 같은 쿼리
				SELECT 
				        MAX(T1.CORP_NO) AS CORP_NO
				      , SUM(T1.FREE_CNT) AS FREE_CNT
					  , SUM(T1.SPECIAL_CNT) AS SPECIAL_CNT
				      
						   
					FROM  (
								SELECT  A.CORP_NO,
										A.USR_ID,

										ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) AS WORK_CD, 
										ISNULL(B.YYCT_DEDU_DAY,0) AS FREE_CNT,       --연차사용일수

										CASE WHEN ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) IN ('병', 'X', 'Y') THEN 1 ELSE 0 END AS SPECIAL_CNT, 
               
										WORK_PLAN_YYMMDD --연차일자

									FROM SX_GW0050 A
										LEFT JOIN SX_CO0070 B
										ON(1=1
										AND B.CORP_NO = A.CORP_NO
										AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
										)
									WHERE 1=1
									AND A.CORP_NO = @CORP_NO
									AND A.USR_ID = @USR_ID
									AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'
									AND ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) IN ('H', 'I', 'J', 'V', '병','U', 'X', 'Y')

							) T1 
							
							left outer JOIN 

							(
									SELECT A.COMM_CD_NM AS APRVL_STUS_DS  --결재
										   , A.*

									  FROM (
 												SELECT A.CORP_NO,
													   A.APRVL_DOC_ID,
													   A.APRVL_STUS_CD,
													   A.APRVL_KIND_CD,
													   A.OFFER_DT,
													   A.CMPL_DT,
													   A.APRVL_CMPL_SNO,
													   A.FINAL_APRVL_SNO,
													   A.APLNT_ID AS USR_ID,
													   U1.USR_NM AS APLNT_NM,
													   U4.USR_NM AS BZ_DEPUTY_NM,

													   U3.UPD_BF_WORK_CD,
													   U3.UPD_WORK_CD,

													   A.APLNT_CN ,
													   A.BZ_CN,
													   A.OFFER_CN,
													   A.UPD_DT,
													   COMM_CD_NM,
													   UPD_DATE
 
												  FROM (SELECT * 
														 FROM SX_GW0090
														 WHERE CORP_NO + '|' + CONVERT(VARCHAR, APRVL_DOC_ID) IN ( SELECT CORP_NO + '|' + CONVERT(VARCHAR, MAX(APRVL_DOC_ID))
																					 								FROM   SX_GW0110
																													WHERE CORP_NO = @CORP_NO
																													AND   RGSTR_ID = @USR_ID
																							  						GROUP BY CORP_NO, UPD_DATE
																												 )
													   )  A   --같은날 중복으로 결재신청이 될수 있으므로 마지막으로 신청한 것만 사용

													   LEFT JOIN SX_GW0010 U1
													   ON(1=1
														  AND U1.CORP_NO = A.CORP_NO
														  AND U1.USR_ID = A.APLNT_ID
														 ) 

														 LEFT JOIN (SELECT CORP_NO
																		 , APRVL_DOC_ID
																		 , UPD_DATE AS UPD_DATE

																		 , UPD_BF_WORK_CD AS UPD_BF_WORK_CD  --변경전 근무 코드
																		 , UPD_WORK_CD AS UPD_WORK_CD  --변경후 근무코드
																	FROM   SX_GW0110
																	) U3  


																	   ON(1=1
																		  AND U3.CORP_NO = A.CORP_NO
																		  AND U3.APRVL_DOC_ID = A.APRVL_DOC_ID
																		 ) 
							  
																	   LEFT JOIN  SX_GW0010 U4
																			ON(1=1
																			   AND U4.USR_ID = A.BZ_DEPUTY_ID )

																	   LEFT JOIN SX_CO0040 COMMON
																			ON (1=1
																				AND COMMON.CORP_NO = A.CORP_NO
																				AND COMMON.COMM_CL_CD = 'SX011' --결재상태코드
																				AND COMMON.COMM_CD = APRVL_STUS_CD )

													 WHERE 1=1
													   AND A.CORP_NO  = @CORP_NO
													   AND A.APLNT_ID = @USR_ID
													   AND SUBSTRING(UPD_DATE,1,4) = @YYVCT_YY
													   --AND APRVL_STUS_CD IN ('0003') --결재완료
													   AND UPD_WORK_CD IN ('H', 'I', 'J', 'V', '병','U', 'X', 'Y')
	    
											 ) A
		
								) T2 ON (1=1
										 AND T1.CORP_NO = T2.CORP_NO
										 AND T1.USR_ID = T2.USR_ID
										 AND T1.WORK_PLAN_YYMMDD = T2.UPD_DATE
										 )
					)  TX LEFT OUTER JOIN
					( SELECT *
 					  FROM SX_GW0060 
					 WHERE CORP_NO  = @CORP_NO
					 AND   USR_ID   = @USR_ID
					 AND   YYVCT_YY = @YYVCT_YY ) TY ON (1=1)

                      


        --**************************************************************************************************************************************
		-- 2017601 이전 버젼
		--SELECT  '총연차일 : ' + CONVERT(VARCHAR, ISNULL(YYVCT_CNT * 1.00,0)) + '일'            AS YYVCT_CNT  --총연차일
		--      , '신청일수 : ' + CONVERT(VARCHAR, ISNULL(COM_CNT,0)) + '일'              AS SINCHUNG_CNT --신청일수  
		--	  , '사용일수 : ' + CONVERT(VARCHAR, ISNULL(COM_CNT,0)) + '일'              AS USD_CNT --사용일수
		--	  , '특휴·병가등일수 : ' + CONVERT(VARCHAR, ISNULL(SPECIAL_CNT*1.00,0)) + '일'  AS SPECIAL_CNT  --특휴병가등일수
		--	  , '잔여연차 : ' + CONVERT(VARCHAR, ISNULL(YYVCT_CNT,0) - ISNULL(COM_CNT,0)) + '일'  AS REMAIN_CNT --잔여연차

		--  FROM 
 	--			(    SELECT *
 	--				  FROM SX_GW0060 
		--			WHERE CORP_NO  = @CORP_NO
		--			AND   USR_ID   = @USR_ID
		--			AND   YYVCT_YY = @YYVCT_YY ) A
					
		--			inner JOIN 
 
 	--				( SELECT 
		--					SUM(B.YYCT_DEDU_DAY) AS COM_CNT,       --YYCT_DEDU_DCNT, --연차사용일수
               
		--					COUNT(CASE WHEN A.LATE_MIN > 0 THEN 1 END) AS LATE_DCNT,                                                      --지각
		--					COUNT(CASE WHEN A.SKIPOFF_REMN_BZ_MIN > 0 THEN 1 END) AS SKIPOFF_DCNT,                                        --조퇴
		--					SUM(A.OUTING_CNT) AS OUTING_CNT,											 								 --외출횟수

		--					SUM(A.OUTING_MIN) AS OUTING_MIN,																		     --외출시간(분)

		--					COUNT(CASE WHEN ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) IN ('병', 'X', 'Y') THEN 1 END) AS  SPECIAL_CNT --SICKLEAVE_DCNT --병가, 특별휴가 일수

		--				FROM SX_GW0050 A
		--					LEFT JOIN SX_CO0070 B
		--					ON(1=1
		--					AND B.CORP_NO = A.CORP_NO
		--					AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
		--					)
		--				WHERE 1=1
		--				AND A.CORP_NO = @CORP_NO
		--				AND A.USR_ID = @USR_ID
		--				AND A.WORK_PLAN_YYMMDD LIKE @YYVCT_YY + '%'

		--			) B ON (1=1)
							
		-- WHERE 1=1



		


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_monthly_working_time_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-02-02
-- Create Description :	스카이브릿지 그룹웨어 월별근무시간 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_monthly_working_time_select  '1111',NULL,NULL,'','','','','','',NULL,'20170201','20170228','20170201'


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_monthly_working_time_select]

		@P0 nvarchar(4000)
		,@P1 varchar(8000)
		,@P2 varchar(8000)
		,@P3 nvarchar(4000)
		,@P4 nvarchar(4000)
		,@P5 nvarchar(4000)
		,@P6 nvarchar(4000)
		,@P7 nvarchar(4000)
		,@P8 nvarchar(4000)
		,@P9 varchar(8000)
		,@P10 nvarchar(4000)
		,@P11 nvarchar(4000)
		,@P12 nvarchar(4000)

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED
	
	;  


		WITH USER1 AS
		(
		SELECT U.CORP_NO,
			   U.USR_ID,
			   U.USR_NM,
			   U.TEAM_CD,
			   U.DUTY_CD
		  FROM SX_GW0010 U
		 WHERE 1=1
		   AND U.CORP_NO = @P0
		   AND (NULLIF(@P1, '') IS NULL OR U.USR_ID = @P2)
		   AND (NULLIF(@P3, '') IS NULL OR U.USR_NM LIKE CONCAT('%', @P4, '%'))
		   AND (NULLIF(@P5, '') IS NULL OR U.TEAM_CD = @P6)
		   AND (NULLIF(@P7, '') IS NULL OR U.DUTY_CD = @P8)
		   AND (@P9 = 'Y' OR NULLIF(U.RETIREMENT_DATE, '') IS NULL)
		) 

		SELECT U.USR_ID,
			   U.USR_NM,
			   U.TEAM_CD,
			   U.DUTY_CD,

			   A.WORK_DCNT, --근무
			   B.YYVCT_CNT, 			   --연차(조회가 없음)

		
			   A.YYCT_DEDU_DCNT, --연차사용

			   A.ABTI_DCNT, --결근

			   A.LATE_DCNT, --지각
			   A.SKIPOFF_DCNT, --조퇴
			   A.SICKLEAVE_DCNT, --병가
			   
			   A.TOT_WORK_MIN,
			   A.LATE_MIN,
			   A.SKIPOFF_REMN_BZ_MIN,
			   A.INCLU_WORK_OT_MIN,
			   A.OT_WORK_MIN,
			   A.NGT_OT_MIN
		  FROM USER1 U

			   LEFT JOIN (
							SELECT A.CORP_NO,
								   A.USR_ID,
								   --일수
								   SUM(CASE WHEN ISNULL(NULLIF(A.ABTI_YN, ''), 'N') != 'Y' THEN B.APLY_WORK_DAY END) AS WORK_DCNT, --근무
								   --연차(조회가 없음)
		
								   SUM(B.YYCT_DEDU_DAY) AS YYCT_DEDU_DCNT, --연차사용

								   COUNT(CASE WHEN ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) = '결' OR A.ABTI_YN = 'Y' THEN 1 END) AS ABTI_DCNT, --결근
					   
								   COUNT(CASE WHEN A.LATE_MIN > 0 THEN 1 END) AS LATE_DCNT, --지각
								   COUNT(CASE WHEN A.SKIPOFF_REMN_BZ_MIN > 0 THEN 1 END) AS SKIPOFF_DCNT, --조퇴
								   COUNT(CASE WHEN ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD) = '병' THEN 1 END) AS SICKLEAVE_DCNT, --병가

								   --(분) : 시간은 화면에서 계속하는것 같음
								   SUM(A.TOT_WORK_MIN) AS TOT_WORK_MIN,  --총근무
								   SUM(A.LATE_MIN) AS LATE_MIN,  --지각
								   SUM(A.SKIPOFF_REMN_BZ_MIN) AS SKIPOFF_REMN_BZ_MIN,  --조퇴
								   SUM(A.INCLU_WORK_OT_MIN) AS INCLU_WORK_OT_MIN, --포괄OT
								   SUM(A.OT_WORK_MIN) AS OT_WORK_MIN, --OT
								   SUM(A.NGT_OT_MIN) AS NGT_OT_MIN --야간
							  FROM USER1 U

								   JOIN SX_GW0050 A
								   ON(1=1
									AND A.CORP_NO = U.CORP_NO
									AND A.USR_ID = U.USR_ID
									AND A.WORK_PLAN_YYMMDD BETWEEN @P10 AND @P11
								   )

								   LEFT JOIN SX_CO0070 B  --공통코드
								   ON(1=1
									AND B.CORP_NO = A.CORP_NO
									AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
								   )
							 WHERE 1=1
							 GROUP BY
								   A.CORP_NO,
								   A.USR_ID
						   ) A
						   ON(1=1
							AND A.CORP_NO = U.CORP_NO
							AND A.USR_ID = U.USR_ID
						   )

			   LEFT JOIN SX_GW0060 B
			   ON(1=1
				AND B.CORP_NO = U.CORP_NO
				AND B.USR_ID = U.USR_ID
				AND B.YYVCT_YY = SUBSTRING(@P12, 1, 4)
			   )
		 WHERE 1=1
		 ORDER BY
			   USR_NM,
			   USR_ID   

	  
	
END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_today_early_leave_YN_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 퇴근 클릭시 조퇴인지를 체크
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_today_early_leave_YN_select '1111', '20170215' , '10454'
-- exec pr_skybridge_gw_today_early_leave_YN_select '1111', '20170216' , '10454'


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_today_early_leave_YN_select]

		  @CORP_NO VARCHAR(15)         --회사코드
		, @WORK_PLAN_YYMMDD VARCHAR(8) --근무일자(계획)
		, @USR_ID VARCHAR(20) --사용자

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  


		SELECT COUNT('A') AS EARLY_LEAVE_YN  --1이면 조퇴
		FROM  (
					SELECT EARLY_LEAVE_MIN
						 , USR_NM
						 , TEAM_CD
						 , DUTY_CD
						 , WORK_END_DT
						 , USR_ID

					FROM (
							SELECT DATEDIFF(
       								MINUTE,
									CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GETOFFWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')),
									ISNULL(A.WORK_END_DT, GETDATE())
								   ) AS EARLY_LEAVE_MIN,
								   U.USR_NM,
								   U.TEAM_CD,
								   U.DUTY_CD,
								   A.WORK_END_DT,
								   U.USR_ID
							  FROM SX_GW0050 A  --일별근무계획
								   JOIN SX_GW0010 U --사용자
								   ON(1=1
									AND U.CORP_NO = A.CORP_NO
									AND U.USR_ID = A.USR_ID
									)
								   JOIN SX_CO0070 B --공통근무코드
								   ON(1=1
									AND B.CORP_NO = A.CORP_NO
									AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
									AND NULLIF(B.GETOFFWORK_TM_NM, '') IS NOT NULL
								   )
							 WHERE 1=1
							   AND A.CORP_NO = @CORP_NO
							   AND A.WORK_PLAN_YYMMDD = @WORK_PLAN_YYMMDD
							   AND ISNULL(A.WORK_CD, A.PLAN_WORK_CD) NOT IN('N', 'Z')
							   AND (
									(
									  1=1
									  AND SUBSTRING(B.GETOFFWORK_TM_NM, 1, 1) != 'T'
									  AND CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GETOFFWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' '))
										  > ISNULL(A.WORK_END_DT, GETDATE())
									)
								   )
						) AS TA
					 WHERE 1=1
				
				) TA
			WHERE USR_ID = @USR_ID
			AND   EARLY_LEAVE_MIN < 0
		






END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_today_late_person_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 메인화면의 오늘 지각한사람(분) 조회
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_today_late_person_select '20160113', '20160113', '1111', '20170117' 


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_today_late_person_select]

		  @DISML_DATE VARCHAR(8)      --해고일자
		, @RETIREMENT_DATE VARCHAR(8) --퇴직일자 일자
		, @CORP_NO VARCHAR(15)         --회사코드
		, @WORK_PLAN_YYMMDD VARCHAR(8) --근무일자(계획)

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

		-- 신규 작성 : 출근시각이 있는 사람에 한해서만 지각자를 DISPLAY 한다.
		SELECT LATE_MIN
		     , USR_NM
			 , TEAM_CD
			 , DUTY_CD
			 , WORK_START_DT
		FROM (
				SELECT DATEDIFF(
       					MINUTE,
						CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')),
						ISNULL(A.WORK_START_DT, GETDATE())
					   ) AS LATE_MIN,
					   U.USR_NM,
					   U.TEAM_CD,
					   U.DUTY_CD,
					   A.WORK_START_DT
				  FROM SX_GW0050 A  --일별근무계획
					   JOIN SX_GW0010 U --사용자
					   ON(1=1
						AND U.CORP_NO = A.CORP_NO
						AND U.USR_ID = A.USR_ID
						AND (NULLIF(U.DISML_DATE, '') IS NULL OR U.DISML_DATE >= @DISML_DATE) --해고일자
						AND (NULLIF(U.RETIREMENT_DATE, '') IS NULL OR U.RETIREMENT_DATE >= @RETIREMENT_DATE) --퇴직일자 
						)
					   JOIN SX_CO0070 B --공통근무코드
					   ON(1=1
						AND B.CORP_NO = A.CORP_NO
						AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
						AND NULLIF(B.GOTOWORK_TM_NM, '') IS NOT NULL
					   )
				 WHERE 1=1
				   AND A.CORP_NO = @CORP_NO
				   AND A.WORK_PLAN_YYMMDD = @WORK_PLAN_YYMMDD
				   AND (
						(
						  1=1
						  AND SUBSTRING(B.GOTOWORK_TM_NM, 1, 1) != 'T'
						  AND CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' '))
							  < ISNULL(A.WORK_START_DT, GETDATE())
						)
					   )
			) AS TA
         WHERE 1=1
			AND TA.LATE_MIN > 0
			--AND   TA.WORK_START_DT IS NOT NULL
		 ORDER BY
			   LATE_MIN DESC,
			   USR_NM  
		



	 --   --기존에 사용한 문장 BACKUP
		--SELECT DATEDIFF(
  --     			MINUTE,
		--		CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')),
		--		ISNULL(A.WORK_START_DT, GETDATE())
		--	   ) AS LATE_MIN,
		--	   U.USR_NM,
		--	   U.TEAM_CD,
		--	   U.DUTY_CD,
		--	   A.WORK_START_DT
		--  FROM SX_GW0050 A  --일별근무계획
		--	   JOIN SX_GW0010 U --사용자
		--	   ON(1=1
		--		AND U.CORP_NO = A.CORP_NO
		--		AND U.USR_ID = A.USR_ID
		--		AND (NULLIF(U.DISML_DATE, '') IS NULL OR U.DISML_DATE >= @DISML_DATE) --해고일자
		--		AND (NULLIF(U.RETIREMENT_DATE, '') IS NULL OR U.RETIREMENT_DATE >= @RETIREMENT_DATE) --퇴직일자 
		--		)
		--	   JOIN SX_CO0070 B --공통근무코드
		--	   ON(1=1
		--		AND B.CORP_NO = A.CORP_NO
		--		AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
		--		AND NULLIF(B.GOTOWORK_TM_NM, '') IS NOT NULL
		--	   )
		-- WHERE 1=1
		--   AND A.CORP_NO = @CORP_NO
		--   AND A.WORK_PLAN_YYMMDD = @WORK_PLAN_YYMMDD
		--   AND (
		--		(
		--		  1=1
		--		  AND SUBSTRING(B.GOTOWORK_TM_NM, 1, 1) != 'T'
		--		  AND CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' '))
		--			  < ISNULL(A.WORK_START_DT, GETDATE())
		--		)
		--	   )
		-- ORDER BY
		--	   LATE_MIN DESC,
		--	   USR_NM  
		


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_today_late_YN_select]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 출근체크 클릭시 지작인지를 체크
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_today_late_YN_select '1111', '20170307' , '10352'
-- exec pr_skybridge_gw_today_late_YN_select '1111', '20170307' , '00026'
-- exec pr_skybridge_gw_today_late_YN_select '1111', '20170307' , '00001'


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_today_late_YN_select]

		  @CORP_NO VARCHAR(15)         --회사코드
		, @WORK_PLAN_YYMMDD VARCHAR(8) --근무일자(계획)
		, @USR_ID VARCHAR(20) --사용자

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  


		SELECT COUNT('A') AS LATE_YN  --1이면 지각
		FROM  (
					SELECT LATE_MIN
						 , USR_NM
						 , TEAM_CD
						 , DUTY_CD
						 , WORK_START_DT
						 , USR_ID

					FROM (
							SELECT DATEDIFF(
       								MINUTE,
									CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, (CASE WHEN ISNULL(A.WORK_CD, A.PLAN_WORK_CD) IN('N', 'Z') THEN B.GETOFFWORK_TM_NM ELSE B.GOTOWORK_TM_NM END), '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')),
									ISNULL(A.WORK_START_DT, GETDATE())
								   ) AS LATE_MIN,
								   U.USR_NM,
								   U.TEAM_CD,
								   U.DUTY_CD,
								   A.WORK_START_DT,
								   U.USR_ID
							  FROM SX_GW0050 A  --일별근무계획
								   JOIN SX_GW0010 U --사용자
								   ON(1=1
									AND U.CORP_NO = A.CORP_NO
									AND U.USR_ID = A.USR_ID
									)
								   JOIN SX_CO0070 B --공통근무코드
								   ON(1=1
									AND B.CORP_NO = A.CORP_NO
									AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
									AND NULLIF(B.GOTOWORK_TM_NM, '') IS NOT NULL
								   )
							 WHERE 1=1
							   AND A.CORP_NO = @CORP_NO
							   AND A.WORK_PLAN_YYMMDD = @WORK_PLAN_YYMMDD
							   --AND ISNULL(A.WORK_CD, A.PLAN_WORK_CD) NOT IN('N', 'Z')			--2017.06.15 지각계 작성 관련 작업
							   AND (
									(
									  1=1
									  --AND DATEPART(DW, @WORK_PLAN_YYMMDD) NOT IN('1', '7')		--2017.06.15 지각계 작성 관련 작업
									  AND SUBSTRING(B.GOTOWORK_TM_NM, 1, 1) != 'T'
									  AND CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' '))
										  < ISNULL(A.WORK_START_DT, GETDATE())
									)
								   )
						) AS TA
					 WHERE 1=1
					 --AND   TA.WORK_START_DT IS NOT NULL
				
				) TA
			WHERE USR_ID = @USR_ID
			AND   LATE_MIN >= 1
		



	 --   --기존에 사용한 문장 BACKUP
		--SELECT DATEDIFF(
  --     			MINUTE,
		--		CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')),
		--		ISNULL(A.WORK_START_DT, GETDATE())
		--	   ) AS LATE_MIN,
		--	   U.USR_NM,
		--	   U.TEAM_CD,
		--	   U.DUTY_CD,
		--	   A.WORK_START_DT
		--  FROM SX_GW0050 A  --일별근무계획
		--	   JOIN SX_GW0010 U --사용자
		--	   ON(1=1
		--		AND U.CORP_NO = A.CORP_NO
		--		AND U.USR_ID = A.USR_ID
		--		AND (NULLIF(U.DISML_DATE, '') IS NULL OR U.DISML_DATE >= @DISML_DATE) --해고일자
		--		AND (NULLIF(U.RETIREMENT_DATE, '') IS NULL OR U.RETIREMENT_DATE >= @RETIREMENT_DATE) --퇴직일자 
		--		)
		--	   JOIN SX_CO0070 B --공통근무코드
		--	   ON(1=1
		--		AND B.CORP_NO = A.CORP_NO
		--		AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
		--		AND NULLIF(B.GOTOWORK_TM_NM, '') IS NOT NULL
		--	   )
		-- WHERE 1=1
		--   AND A.CORP_NO = @CORP_NO
		--   AND A.WORK_PLAN_YYMMDD = @WORK_PLAN_YYMMDD
		--   AND (
		--		(
		--		  1=1
		--		  AND SUBSTRING(B.GOTOWORK_TM_NM, 1, 1) != 'T'
		--		  AND CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' '))
		--			  < ISNULL(A.WORK_START_DT, GETDATE())
		--		)
		--	   )
		-- ORDER BY
		--	   LATE_MIN DESC,
		--	   USR_NM  
		


END --PROCEDURE END

GO
/****** Object:  StoredProcedure [dbo].[pr_skybridge_gw_today_late_YN_select_ORI]    Script Date: 2026-03-30 오후 1:12:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =======================================================================================
-- Author :		박종응
-- Create date : 2017-01-17
-- Create Description :	스카이브릿지 그룹웨어 출근체크 클릭시 지작인지를 체크
-- Update date :
-- Update Description :

-- exec pr_skybridge_gw_today_late_YN_select '1111', '20170307' , '10352'
-- exec pr_skybridge_gw_today_late_YN_select '1111', '20170307' , '00026'
-- exec pr_skybridge_gw_today_late_YN_select '1111', '20170307' , '00001'


-- =======================================================================================
CREATE PROCEDURE [dbo].[pr_skybridge_gw_today_late_YN_select_ORI]

		  @CORP_NO VARCHAR(15)         --회사코드
		, @WORK_PLAN_YYMMDD VARCHAR(8) --근무일자(계획)
		, @USR_ID VARCHAR(20) --사용자

AS


BEGIN

	SET XACT_ABORT ON
	SET NOCOUNT ON
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED  


		SELECT COUNT('A') AS LATE_YN  --1이면 지각
		FROM  (
					SELECT LATE_MIN
						 , USR_NM
						 , TEAM_CD
						 , DUTY_CD
						 , WORK_START_DT
						 , USR_ID

					FROM (
							SELECT DATEDIFF(
       								MINUTE,
									CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')),
									ISNULL(A.WORK_START_DT, GETDATE())
								   ) AS LATE_MIN,
								   U.USR_NM,
								   U.TEAM_CD,
								   U.DUTY_CD,
								   A.WORK_START_DT,
								   U.USR_ID
							  FROM SX_GW0050 A  --일별근무계획
								   JOIN SX_GW0010 U --사용자
								   ON(1=1
									AND U.CORP_NO = A.CORP_NO
									AND U.USR_ID = A.USR_ID
									)
								   JOIN SX_CO0070 B --공통근무코드
								   ON(1=1
									AND B.CORP_NO = A.CORP_NO
									AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
									AND NULLIF(B.GOTOWORK_TM_NM, '') IS NOT NULL
								   )
							 WHERE 1=1
							   AND A.CORP_NO = @CORP_NO
							   AND A.WORK_PLAN_YYMMDD = @WORK_PLAN_YYMMDD
							   AND ISNULL(A.WORK_CD, A.PLAN_WORK_CD) NOT IN('N', 'Z')
							   AND (
									(
									  1=1
									  AND DATEPART(DW, @WORK_PLAN_YYMMDD) NOT IN('1', '7')
									  AND SUBSTRING(B.GOTOWORK_TM_NM, 1, 1) != 'T'
									  AND CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' '))
										  < ISNULL(A.WORK_START_DT, GETDATE())
									)
								   )
						) AS TA
					 WHERE 1=1
					 --AND   TA.WORK_START_DT IS NOT NULL
				
				) TA
			WHERE USR_ID = @USR_ID
			AND   LATE_MIN >= 1
		



	 --   --기존에 사용한 문장 BACKUP
		--SELECT DATEDIFF(
  --     			MINUTE,
		--		CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')),
		--		ISNULL(A.WORK_START_DT, GETDATE())
		--	   ) AS LATE_MIN,
		--	   U.USR_NM,
		--	   U.TEAM_CD,
		--	   U.DUTY_CD,
		--	   A.WORK_START_DT
		--  FROM SX_GW0050 A  --일별근무계획
		--	   JOIN SX_GW0010 U --사용자
		--	   ON(1=1
		--		AND U.CORP_NO = A.CORP_NO
		--		AND U.USR_ID = A.USR_ID
		--		AND (NULLIF(U.DISML_DATE, '') IS NULL OR U.DISML_DATE >= @DISML_DATE) --해고일자
		--		AND (NULLIF(U.RETIREMENT_DATE, '') IS NULL OR U.RETIREMENT_DATE >= @RETIREMENT_DATE) --퇴직일자 
		--		)
		--	   JOIN SX_CO0070 B --공통근무코드
		--	   ON(1=1
		--		AND B.CORP_NO = A.CORP_NO
		--		AND B.WORK_CD = ISNULL(NULLIF(A.WORK_CD, ''), A.PLAN_WORK_CD)
		--		AND NULLIF(B.GOTOWORK_TM_NM, '') IS NOT NULL
		--	   )
		-- WHERE 1=1
		--   AND A.CORP_NO = @CORP_NO
		--   AND A.WORK_PLAN_YYMMDD = @WORK_PLAN_YYMMDD
		--   AND (
		--		(
		--		  1=1
		--		  AND SUBSTRING(B.GOTOWORK_TM_NM, 1, 1) != 'T'
		--		  AND CONVERT(DATETIME, STUFF(STUFF(STUFF(CONCAT(A.WORK_PLAN_YYMMDD, B.GOTOWORK_TM_NM, '00'), 13, 0, ':'), 11, 0, ':'), 9, 0, ' '))
		--			  < ISNULL(A.WORK_START_DT, GETDATE())
		--		)
		--	   )
		-- ORDER BY
		--	   LATE_MIN DESC,
		--	   USR_NM  
		


END --PROCEDURE END

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'정렬순서' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SX_GW0050', @level2type=N'COLUMN',@level2name=N'SORT_ODR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'정렬순서' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SX_GW0060', @level2type=N'COLUMN',@level2name=N'SORT_ODR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'회사번호' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SX_GW0100', @level2type=N'COLUMN',@level2name=N'CORP_NO'
GO
USE [master]
GO
ALTER DATABASE [logins_test] SET  READ_WRITE 
GO
